Sprint 4 完成:Slidev 簡報系統整合
Sprint 目標
建立完整的 Slidev 簡報系統,讓我可以快速建立、編輯、審查、建立與部署簡報。
完成項目
1. Obsidian Vault 設定
建立獨立的 slides/ vault,與 blog vault 分離:
- Blog vault:
site/src/content/blog/ - Slides vault:
slides/
兩個 vault 都配置了:
- 圖片自動貼上設定 (
app.json) - 簡報模板 (
.obsidian/templates/presentation.md) - Workspace gitignore 規則
2. Slidev 主題系統
完成品牌主題 slides/shared-theme/:
- Flow/Drain 雙色模式
- 設計代幣 (Design Tokens) 完整實作
- 自訂 layouts (cover, center, default, two-cols)
- 無障礙設計 (WCAG AA 對比度標準)
3. Landing Page 自動生成
build-all.js 腳本功能:
- 自動發現所有簡報 (
slides/*/slides.md) - 建立每個簡報為獨立子目錄
- 生成 Landing Page (
dist/index.html) - 按日期排序,最新優先
- 使用品牌設計系統
4. Blog 指令重新命名
所有 blog 相關指令加上 /blog-* 前綴:
/blog-generate-seo- SEO metadata 生成/blog-validate- 文章格式驗證/blog-review- AI 品質審查/blog-publish- 完整發布流程/blog-optimize-images- 圖片優化檢查
5. Slides 完整工作流程
建立 6 個新指令:
/slides-create [name]
建立新簡報專案:
- 複製模板結構
- 互動式設定 frontmatter
- 生成初始投影片
- 安裝依賴
/slides-restructure [file]
AI 重構簡報內容:
- 使用 Context7 查詢 Slidev 最佳實踐
- 分析內容密度、佈局、動畫
- 生成具體重構建議
- Human-in-the-loop 確認後執行
/slides-validate [file]
格式驗證:
- Frontmatter 完整性
- Markdown 結構
- Layout 語法
- 程式碼區塊
- v-clicks 正確性
- 圖片路徑檢查
/slides-review [file]
AI 品質審查:
- 敘事結構 (8 個維度)
- 內容品質
- 視覺設計
- 互動節奏
- 品牌一致性
- 觀眾體驗
- 生成評分與具體建議
/slides-build [name]
建立簡報:
- 執行 Slidev build
- 輸出到
dist/[name]/ - 設定 base URL (子路徑部署)
- 驗證建立結果
/slides-publish [name]
完整發布流程:
- 格式驗證
- 品質審查
- 圖片檢查
- 建立簡報
- 預覽確認
- Git commit & push
- Vercel 自動部署
技術架構
Monorepo 結構
/
├── site/ # Astro 網站
│ └── src/content/blog/ # Blog Obsidian vault
│ └── .obsidian/
├── slides/ # Slidev 簡報系統
│ ├── .obsidian/ # Slides Obsidian vault
│ │ └── templates/
│ ├── shared-theme/ # 品牌主題
│ │ ├── layouts/
│ │ └── styles/
│ ├── template/ # 簡報模板
│ ├── [presentation-1]/ # 簡報專案
│ ├── [presentation-2]/
│ ├── build-all.js # 建立腳本
│ └── vercel.json # Vercel 設定
└── .claude/commands/ # Claude Code 指令
├── blog-*.md # Blog 工作流程
└── slides-*.md # Slides 工作流程
部署架構
- Blog: powei.me (Vercel, 根專案)
- Slides: slides.pwlee.xyz (Vercel, 獨立專案)
兩者共用同一個 Git repository,但部署到不同的 Vercel 專案。
使用流程
Blog 工作流程
# 1. 在 Obsidian 中撰寫文章
# 2. 執行 SEO 生成
/blog-generate-seo path/to/post.md
# 3. 驗證格式
/blog-validate path/to/post.md
# 4. 審查品質
/blog-review path/to/post.md
# 5. 發布
/blog-publish path/to/post.md
Slides 工作流程
# 1. 建立新簡報
/slides-create my-talk
# 2. 在 Obsidian 中撰寫內容
# 3. AI 重構優化
/slides-restructure slides/my-talk/slides.md
# 4. 驗證格式
/slides-validate slides/my-talk/slides.md
# 5. 品質審查
/slides-review slides/my-talk/slides.md
# 6. 建立 & 部署
/slides-publish slides/my-talk/slides.md
關鍵設計決策
1. 為什麼分離 Obsidian vaults?
決策: 兩個獨立的 vault
原因:
- Blog 與 Slides 內容性質完全不同
- 避免模板、設定混淆
- 方便在 Obsidian 中快速切換
替代方案:
- 單一 vault 用資料夾分類 → 太混亂
2. 為什麼 /blog-* 和 /slides-* 前綴?
決策: 明確的命名空間
原因:
- 清楚區分工作流程
- 避免指令名稱衝突
- 使用者容易記憶與自動完成
替代方案:
- 無前綴 → 容易混淆 (
/validate是 blog 還是 slides?)
3. 為什麼使用 Context7 in /slides-restructure?
決策: 查詢 Slidev 最新文件
原因:
- Slidev 持續更新,API 可能變化
- 確保遵循最新最佳實踐
- AI 知識可能過時
效果:
- 重構建議基於官方文件
- 避免使用已棄用的語法
4. 為什麼 Human-in-the-loop?
決策: 所有 AI 建議需使用者確認
原因:
- 尊重作者的表達風格
- AI 不應自動改變內容語意
- 給予使用者完全控制權
實作:
/slides-restructure: 逐項確認修改/slides-review: 僅提供建議,不自動執行
學到的經驗
1. 模板設計很重要
問題: 初期模板過於複雜 (36 張投影片)
解決: 建立簡化版模板 (4 張投影片)
- Cover slide
- 大綱
- 內容範例
- 結尾
效果: 使用者更快上手
2. 驗證應分層
發現: 格式驗證 vs 品質審查是兩回事
實作:
/slides-validate: 技術正確性 (語法、結構)/slides-review: 內容品質 (敘事、設計)
效果: 錯誤訊息更清晰
3. 自動化但保留彈性
平衡:
- 完整流程:
/slides-publish(6 步驟自動化) - 單步執行: 可單獨執行任意指令
- 跳過選項:
--quick,--skip-validation
效果: 適合不同使用情境
效能指標
- 建立時間: 單個簡報 2-4 秒
- 檔案大小: 平均 250 KB
- 部署時間: Vercel 自動部署 10-15 秒
下一步 (Sprint 5?)
可能的改進方向:
-
簡報版本控制
- 自動備份歷史版本
- Rollback 功能
-
簡報分析
- 投影片使用統計
- 觀眾互動追蹤
-
匯出格式
- PDF export
- PPTX export (使用 Slidev export)
-
協作功能
- 多人評論系統
- 版本比較
總結
Sprint 4 成功建立完整的 Slidev 簡報系統,整合 Obsidian 雙 vault 架構,實作 /blog-* 和 /slides-* 兩套完整工作流程。
關鍵成就:
- ✅ 6 個新指令全部實作完成
- ✅ Context7 整合用於最佳實踐查詢
- ✅ Human-in-the-loop 設計確保使用者控制
- ✅ 品牌一致性維持 (Flow/Drain 雙色系統)
- ✅ 完整文檔與使用範例
可用性驗證: 本篇文章即是使用 /blog-* 工作流程撰寫與發布!
常見問題
Sprint 4 的主要目標是什麼?
建立完整的 Slidev 簡報系統,包含雙 Obsidian vault 架構、品牌主題、自動建立腳本,以及完整的
/slides-* 工作流程指令,讓簡報的建立、審查與部署變得快速且系統化。 為什麼要分離 Blog 和 Slides 的 Obsidian vault?
因為 Blog 與 Slides 內容性質完全不同。分離 vault 可以避免模板和設定混淆,方便在 Obsidian 中快速切換工作環境,讓內容管理更清晰。
什麼是 Context7?為什麼用在 /slides-restructure?
Context7 是查詢最新技術文件的工具。在
/slides-restructure 中使用 Context7 查詢 Slidev 官方文件,確保重構建議基於最新最佳實踐,避免使用已棄用的語法。 Human-in-the-loop 設計是什麼意思?
所有 AI 建議都需要使用者確認後才執行。這尊重作者的表達風格與創作意圖,給予使用者完全控制權,AI 不會自動改變內容語意。
這個簡報系統可以試用嗎?
簡報系統已部署到 slides.pwlee.xyz。你可以參考文章中的技術架構與工作流程,用 Slidev 和 Obsidian 建立類似的系統。完整程式碼在 monorepo 中,包含所有 Claude Code 指令與主題設定。