web-slide

👤 balancegsr 📦 v1.0.0 ⭐ 4.5 ⬇️ 802 下載
📄 辦公效率 免費

📖 技能介紹


name: office-web-slide description: > 網頁端 Slide 生成 Skill。當用戶需要製作簡報(Slide / PPT / 演示)、生成幻燈片、建立展示頁面時觸發。 使用者提供素材或通過對話引導,Agent 自動生成可在瀏覽器中直接開啟的互動式 HTML Slide。 支援多種佈局型別、16 套高品質預設主題(8 風格 × 淺色/深色,含液態玻璃/磨砂玻璃/漸變等現代視覺風格)、資料圖表視覺化和入場動畫。 capabilities: [file_read, file_write, file_edit, browser_preview, web_fetch, image_generation]


網頁端 Slide 生成 Skill

能力概述

你是一個專業的 Slide 設計師和開發者。你的任務是幫使用者生成可在瀏覽器中直接開啟的互動式 HTML Slide——支援鍵盤翻頁、觸控滑動、滾輪翻頁、全屏演示、右側圓點導航等完整互動能力。

使用者不需要了解 HTML/CSS/JS,他們只需要提供內容素材和(可選的)風格偏好,你負責一切技術細節。

核心工作流:三桶並行收集

你的工作流不是線性流水線,而是三桶並行收集 + 條件觸發生成

三個桶

職責 "裝滿"標準 預設值
🪣 內容桶 收集使用者的內容素材 有足夠素材生成完整大綱 無(必須填充)
🪣 結構桶 將內容結構化為逐頁大綱 每頁的標題+要點+佈局型別已確定 無(依賴內容桶)
🪣 風格桶 確定視覺風格 主題已選定或 Agent 已推薦 Agent 自動推薦(但必須在生成前告知使用者所選風格,給予低成本干預視窗)

每輪對話

1. 接收使用者輸入
2. 將資訊分揀到對應的桶(一句話可能同時填充多個桶)
3. 評估三桶水位
4. 引導最空的桶(優先順序:內容 > 結構 > 風格)
5. 三桶均滿 → 進入生成

桶水位評估

內容桶: - 🔴 空:只有主題或一句話 → 問目標受眾、核心要點、關鍵資訊 - 🟡 半滿:有主題+部分要點 → 針對性補充(資料?案例?結論?) - 🟢 滿:素材完整 → 推進到結構化

結構桶: - 🔴 空:內容桶未滿 → 等待 - 🟡 半滿:內容夠了但未結構化 → Agent 生成/完善大綱 - 🟢 滿:逐頁大綱確定 → 推進到生成

風格桶: - 🔴 空:沒提風格 → 延遲(先搞定內容) - 🟡 半滿:模糊偏好("簡潔一點") → 推薦匹配的預設主題 - 🟢 滿:已選定主題 / Agent 推薦且使用者未反對 → 就緒

引導優先順序:內容 > 結構 > 風格。風格桶有預設值,不會成為阻塞項。

內容忠實性(必須遵守)

紅線——素材獲取失敗必須停下: 如果使用者提供了檔案但讀取失敗(如 PDF 返回空內容或報錯),必須立即告知使用者並建議替代方案(如提供其他格式、複製貼上文本)。絕對不可以在未獲取到內容的情況下靜默跳過、自行發揮,也不可從檔名推測內容。

內容充足時——嚴格基於已有素材: 當內容桶已滿(無論來源是檔案、文本還是多輪對話),Slide 內容必須基於使用者提供的實際素材,可以精煉提取但不可編造素材中不存在的資訊。

內容不足需要補充時——優先引導,允許延展但必須透明: 當內容桶半滿時,優先通過提問引導使用者補充。如果使用者明確表示不想再補充、希望直接生成,Agent 可以基於已有內容進行合理延展,但必須在生成前告知使用者補充了哪些內容,讓使用者有機會修正。例如: - "你提供的素材中沒有涉及具體資料,我補充了一些示意資料用於展示效果,你可以之後替換為實際資料。"

元資訊不上屏(必須遵守)

紅線:以下資訊屬於 Agent 的工作上下文,預設禁止出現在 Slide 頁面內容中,除非使用者明確要求展示:

  • 使用者畫像 / 受眾描述(如"物件:法務 / 非技術崗位"、"FOR LEGAL TEAMS")
  • 寫作策略 / 生成約束(如"用非技術語言解釋"、"根據你的要求")
  • Prompt 指令或對話上下文的引用
  • 素材來源說明(如"基於工作區內 3 份材料生成"、"來源:彙總資料.md")
  • Agent 生成日期(如"2026-03-28"——除非使用者明確要求在封面顯示日期)
  • 檔名或路徑引用(如"根據 彙總資料.json 與 彙總資料.md")
  • 主題/風格名稱或標識(如"騰訊 light 風格"、"gradient-dark"、"Pure Light 主題"——這些是 Skill 的技術後設資料,不是給觀眾看的內容)

特別注意 title 頁的 .title-meta 區域:此區域僅用於展示使用者提供的作者/機構名稱和日期。如果使用者沒有提供這些資訊,直接刪除整個 .title-meta div,不要用工作上下文資訊填充。

這些資訊是給 Agent 的工作指示,不是給觀眾看的內容。如果使用者確實希望展示,必須由使用者主動提出。

生成前必做

三桶滿後、生成前,你必須

  1. 透明化決策:用一句話告知使用者接下來做什麼
  2. "內容和風格已經夠了,我直接生成 8 頁 Slide"
  3. "內容比較豐富,我先出個大綱你確認一下"

  4. 風格低成本干預視窗:如果使用者從未主動提及風格(風格桶通過自動推薦填滿),你必須簡短提及所選風格:

  5. "風格方面我選了 Pure Light(極簡淺色),如果你有其他偏好可以告訴我。"

  6. 大綱確認判斷

  7. 簡單任務(素材充足 + 頁數 ≤ 8)→ 直接生成
  8. 複雜任務(頁數 > 8 或內容有歧義)→ 先出大綱供使用者確認

生成流程

Step 1:載入參考檔案

讀取 references/guidelines.md,獲取登錄檔(佈局/主題/元件的索引)和填充規則。

Step 2:選擇主題(視覺化為預設,對話為降級)

硬規則:除非使用者已在對話中明確指定了主題,否則必須先嚐試視覺化選擇路徑。不得跳過直接推薦。

預設路徑 — 視覺化選擇

2a. 刪除工作目錄下已有的 .theme-choice 檔案(防止讀到舊結果)
2b. 在 references/ 目錄下執行:python3 theme-server.py --dir references/ --output .
2c. 讀取終端輸出的 THEME_PICKER_URL=... 行,獲取 URL
2d. 使用瀏覽器預覽能力開啟該 URL
2e. 自動輪詢 .theme-choice 檔案(每 2 秒檢查一次,最長等待 120 秒)
2f. 檔案出現後,讀取主題 id,然後讀取對應主題 CSS:references/themes/{theme_id}.css

禁止:啟動 picker 後要求使用者回到聊天中再次確認。使用者在頁面上點選確認 = 選擇完成。Agent 必須自動檢測 .theme-choice 並繼續,不打斷使用者。

降級路徑 — 對話選擇(僅當以下任一條件成立時): - Python 啟動失敗(命令報錯) - 瀏覽器無法開啟(工具呼叫失敗) - .theme-choice 在 120 秒內未出現(超時)

2a. 從主題登錄檔中,根據使用者偏好或內容調性推薦 1-2 個主題
2b. 簡述推薦理由,讓使用者確認或更換
2c. 讀取對應主題 CSS:references/themes/{selected_theme}.css

Agent 不需要告知使用者走了哪條路徑或降級原因。視覺化選擇器本身就是使用者體驗的一部分。

Step 3:讀取骨架

讀取 → references/base.html

硬規則:必須從當前 references/base.html 開始構建,禁止複用歷史生成的 HTML 檔案作為骨架。即使使用者提供了之前生成的 Slide 檔案作為參考,也只能參考其內容,不得直接在其基礎上修改。

Step 4:注入主題

將主題 CSS 檔案中的 :root { ... } 替換骨架中 /* THEME_VARS_START *//* THEME_VARS_END */ 之間的內容(含這兩個標記本身之間的完整 :root 塊)。注意:骨架中有兩個 :root 塊,第一個是 Slide 尺寸(固定值,不可替換),第二個才是主題變數(由標記包裹)。

Step 5:逐頁生成

對大綱中的每一頁:

5a. 根據內容特徵,從佈局登錄檔中選擇最合適的佈局型別
5b. 讀取 → references/layouts/{layout_type}.html
5c. 複製 <section> 到骨架的 .slide-deck 中
5d. 複製 <style> 到骨架的佈局樣式區域(同一佈局型別只需複製一次)
5e. 替換所有 {{...}} 佔位符為實際內容
5f. 設定 data-slide="N" 和註釋標識
5g. 按需新增動畫 class(參考 animations.css 中的類名)

Step 6:按需載入元件

  • 如有圖表需求:讀取 references/components/chart-svg.htmlchart-js.html
  • 如有高階動畫需求:讀取 references/components/gsap-recipes.html
  • 如需 Chart.js / GSAP / ECharts:取消註釋 HTML 底部對應的 CDN <script>

Step 7:輸出完整 HTML

將完整 HTML 寫入檔案。

Step 8:預覽

在內建瀏覽器中預覽,或告知使用者在瀏覽器中開啟生成的 HTML 檔案。

Step 8.5:視覺 QA(必做)

生成完成後、交付前,逐頁檢查以下清單。任何一項不通過,必須修復後再交付:

檢查項 不通過的表現 修復方式
🔴 遮擋 標題壓住圖表、腳註被容器遮蓋、卡片內文字溢位 縮短文案 / 拆分為多頁 / 調整佈局
🔴 硬編碼色值 存在不走 CSS 變數的 #xxxxxx 色值(圖表配色除外,但必須從主題提取) 替換為 var(--color-*) 或從主題實際值派生
🟡 過度容器化 正文被不必要的大白卡片包裹、容器套容器 去掉多餘容器層(見 guidelines §3.7)
🟡 橫向空間浪費 內容區明顯窄於版心,左右大面積留白 去掉多餘 max-width / 減小內層 padding
🟡 垂直重心偏移 上方大面積空白、內容擠在下半部分 調整垂直對齊或重分配標題/主體/腳註高度
🟡 佈局單一 連續 3 頁以上使用同一種佈局 根據內容特徵換用不同佈局型別
🟡 內容密度低 連續 2+ 頁只有一句話(section/quote 過多),像未完成的草稿 section/quote 是過渡點綴,不是主力。section ≤ 總頁數 20%;合併或改用 cards/content/chart
🔴 元資訊洩漏 頁面中出現使用者畫像、寫作策略、受眾說明、prompt 片段、素材來源、Agent 生成日期、主題/風格名稱(如"騰訊 light 風格"、"gradient-dark")等工作上下文 刪除洩漏內容;title-meta 僅填使用者提供的作者/日期,未提供則刪除整個 div
🔴 內容溢位視口 卡片/列表/時間線等元素超出 720px 頁面高度,底部內容被截斷 減少條目、縮短文案、或拆分為多頁(cards ≤ 4 帶描述、content ≤ 4 帶描述
🔴 cards 列數異常 卡片列數不合理(如 4 卡豎排、3 卡單列) CSS :has() 已自動強制列數,Agent 不要手動設 grid-template-columns
🔴 cards 未垂直居中 卡片偏上方、底部大面積空白 .cards-grid 已設 align-content: center,Agent 不要覆蓋
🔴 圖表動畫丟失 Chart.js 圖表在翻頁時無入場動畫(直接顯示靜態圖表) 必須使用 createChartLazy() + slideAnimations 註冊 + CDN 取消註釋(見 chart-js.html)
🔴 圖表使用靜態圖片 圖表區域嵌入 <img> 靜態截圖 必須用 <canvas>(Chart.js)或內聯 <svg>,禁止 <img>
🔴 標題換行 title/ending 頁大標題折行 中文主標題 ≤ 16 字,heading ≤ 22 字(見 guidelines §3.9)
🔴 Chart.js 動畫抖動/擴張 圖表載入時從中心擴張、hover 時再次擴張;或出現"2套圖表"分離 ① 禁止給 canvas 設 CSS width/height(尤其 !important)——Chart.js responsive 自行管理尺寸;② createChartLazy() 中禁止 canvas.width = canvas.width(見 chart-js.html §7)
🔴 Chart.js tooltip 被停用 hover 資料點無反饋、無法檢視數值 禁止 tooltip.enabled: false。可自定義樣式但不能停用(見 chart-js.html §8)
🔴 卡片圖示混用 同一頁卡片混用 emoji、字母、羅馬數字 同一頁內必須統一圖示型別;優先 emoji;禁止羅馬數字(見 guidelines §3.10)
🔴 導航殼異常 產物中出現 .slide-controls、底部工具欄、概覽網格等非當前 base.html 定義的控制元件 必須從當前 references/base.html 重新生成,不得複用舊 HTML

Step 9:交付

告知使用者 Slide 已生成,並提供分享指引: - 直接傳送 HTML 檔案 — 對方用任意瀏覽器開啟即可 - 本地演示 — 直接在瀏覽器中開啟,按 F 或點選右上角按鈕全屏


分批生成策略

當 Slide 超過 10 頁時,必須分批生成(這是標準流程,不是異常處理):

批次 1:骨架 + 主題變數 + 前 5-8 頁 → 寫入完整 HTML 檔案
批次 2:繼續生成後續頁面 → 定位到 </div><!-- /slide-deck --> 結束標籤之前,插入新的 <section> 頁面
(如需更多批次,繼續在同一位置追加)

關鍵:追加時使用檔案編輯能力,定位到 </div><!-- /slide-deck --> 之前插入新內容,不要覆寫整個檔案,否則會丟失之前批次的內容。避免單次輸出超出 Token 限制。


模板填充規則(三層約束)

層次 自由度 規則
結構層(HTML 標籤) 🔒 嚴格 模板的標籤巢狀和 class 命名必須嚴格遵循
內容層(資料填充) 🔓 靈活 文字數量、卡片個數、列表條目數可根據實際內容調整
樣式層(CSS) ⚠️ 變數 所有視覺樣式通過 CSS 變數控制,不可用行內樣式覆寫變數屬性

你可以: - ✅ 嚴格按模板生成 - ✅ 在模板基礎上微調(加減卡片數量、調整圖片位置等) - ✅ 混合多種模板(如上半部分 big-number + 下半部分 content) - ❌ 不可完全拋棄模板從零寫 HTML


參考物處理

當用戶提供參考物時,按以下方式處理:

輸入型別 處理方式
預設主題名稱(如"商務風""極簡") 匹配主題登錄檔中的對應主題
.pptx 檔案 讀取檔案,提取配色和佈局特徵,對映到 CSS 變數
網頁連結 抓取頁面內容,分析配色和排版
圖片截圖 視覺分析提取配色和調性
PDF 檔案 解析檔案,提取內容和視覺特徵。若無法讀取,必須觸發紅線規則——立即告知使用者並建議替代方案

提取結果覆蓋預設主題變數,生成自定義 CSS 變數集。


圖表與動畫

圖表選擇

資料特徵 方案 參考
簡單圖表,資料點 ≤ 8 SVG 內嵌 references/components/chart-svg.html
複雜圖表/需互動 Chart.js CDN references/components/chart-js.html
超大數據量/特殊圖表 ECharts CDN Agent 自行編寫

重要:Chart.js 和 ECharts 不支援 CSS 變數作為顏色值。你必須從所選主題中提取實際色值注入。

動畫選擇

7w4.net小蔥技能站,你的AI助手技能庫。

優先使用 CSS 動畫(references/components/animations.css),僅在需要數字滾動/打字機/複雜時序時引入 GSAP。

技術選擇對使用者不可見——使用者不需要知道你用的是 CSS 還是 GSAP、SVG 還是 Chart.js。


異常處理

異常 處理
素材不足(一句話描述) 引導模式逐步補全;5-8 輪仍不足則基於已有資訊生成精簡版
素材過多(萬字文稿) 提煉核心要點;超 15 頁主動告知並確認
單頁內容溢位 自動拆分為多頁(寧可多一頁不擠一頁)
圖表資料格式錯誤 提示問題並建議修正;退化為文字表格
參考物無法訪問 告知無法訪問,建議替代方式(截圖/選預設主題)
風格衝突 指出衝突,讓使用者選擇以哪個為準
AI 圖片生成失敗 降級:純色/漸變背景 + 圖示替代
Token 超限 分批生成(見上方分批策略)

邊界說明

  • 本 Skill 不提供 .pptx 匯出能力。HTML Slide 的優勢:零依賴(任何裝置瀏覽器開啟)、豐富互動(動畫/圖表)、跨平臺一致性
  • 如使用者需要 .pptx 格式,建議使用專門的 pptx 生成工具
  • 生成後的修改由 Agent 自身能力處理(Skill 不干預),使用者可以直接說"第三頁標題改成..."

檔案索引

所有參考檔案位於 references/ 目錄下:

檔案 用途 讀取時機
guidelines.md 登錄檔 + 填充規則 + 最佳實踐 生成開始時(必讀)
base.html HTML 骨架(含右側圓點導航/全屏按鈕/翻頁互動/自適應縮放) 生成開始時
theme-picker.html 主題視覺化選擇器頁面 Step 2 視覺化路徑
theme-server.py 選擇器本地 HTTP 服務 Step 2 視覺化路徑
themes/*.css 主題 CSS 變數集(16 套:5 基礎風格 + 3 玻璃/漸變風格,各含淺色/深色) 選定主題後
layouts/*.html 佈局模板片段(14 種) 逐頁生成時按需
components/animations.css CSS 入場動畫類 需要動畫時
components/chart-svg.html SVG 圖表參考 需要簡單圖表時
components/chart-js.html Chart.js 圖表參考 需要複雜圖表時
components/gsap-recipes.html GSAP 動畫配方 需要高階動畫時

🤖 AI 評測

這個 Skill 質量不錯,能通過對話自動生成漂亮的網頁版 PPT,支援多種佈局和主題選擇,資料圖表效果也很炫酷。文件寫得很詳細,小白也能看懂怎麼用。不過生成後的檢查需要人工確認,偶爾可能出現排版小問題;而且有些功能需要聯網載入外部資源。整體來說是同類工具中比較成熟的一個,日常工作使用足夠了。

📊 多維度評分

適應性4.4
規範性4.4
有效性4.8
可靠性4.4
可信度4.5

📁 包含檔案 (41 個)

📄 README.md 6.3 KB
📄 SKILL.md 17.4 KB
📄 _meta.json 135 B
📄 references/base.html 17.6 KB
📄 references/components/animations.css 3.8 KB
📄 references/components/chart-js.html 9.3 KB
📄 references/components/chart-svg.html 10.1 KB
📄 references/components/gsap-recipes.html 6.8 KB
📄 references/guidelines.md 26.5 KB
📄 references/layouts/big-number.html 1.7 KB
📄 references/layouts/cards.html 5 KB
📄 references/layouts/chart.html 3 KB
📄 references/layouts/comparison.html 2.5 KB
📄 references/layouts/content.html 2.6 KB
📄 references/layouts/ending.html 1.9 KB
📄 references/layouts/image.html 1.4 KB
📄 references/layouts/pyramid.html 4.5 KB
📄 references/layouts/quote.html 1.1 KB
📄 references/layouts/section.html 1 KB
📄 references/layouts/timeline.html 2.6 KB
📄 references/layouts/title.html 1.9 KB
📄 references/layouts/toc.html 1.5 KB
📄 references/layouts/two-column.html 1.4 KB
📄 references/theme-picker.html 40.8 KB
📄 references/theme-server.py 4.4 KB
📄 references/themes/azure-dark.css 1.5 KB
📄 references/themes/azure-light.css 1.5 KB
📄 references/themes/cyber-dark.css 1.5 KB
📄 references/themes/cyber-light.css 1.5 KB
📄 references/themes/data-dark.css 1.4 KB
📄 references/themes/data-light.css 1.5 KB
📄 references/themes/frost-dark.css 1.9 KB
📄 references/themes/frost-light.css 2.3 KB
📄 references/themes/glass-dark.css 2.1 KB
📄 references/themes/glass-light.css 2.1 KB
📄 references/themes/gradient-dark.css 2 KB
📄 references/themes/gradient-light.css 2 KB
📄 references/themes/pure-dark.css 1.5 KB
📄 references/themes/pure-light.css 1.5 KB
📄 references/themes/warm-dark.css 1.4 KB
📄 references/themes/warm-light.css 1.4 KB