将 OpenMAIC 的"可编辑 PPTX 导出"能力封装为 Claude Code slash skill,支持从主题、PDF 或已有 classroom 直接生成可编辑 PowerPoint。
skill/ # Claude Code slash skill
SKILL.md # Skill 定义(触发方式、流程、错误处理)
scripts/
export_ppt.sh # 一键生成+导出脚本
server/ # 服务端代码(需集成到 OpenMAIC)
lib/export/
pptx-core.ts # 无头 PPTX 构建核心(无 React/浏览器依赖)
use-export-pptx.ts # 前端 React hook(调用 pptx-core)
api/export/pptx/
route.ts # 服务端导出 API(Next.js route handler)
- 将
skill/目录复制到 OpenMAIC 项目的.claude/skills/openmaic-ppt/ - 将
server/下的文件合并到 OpenMAIC 对应目录 - 在 Claude Code 中使用:
/openmaic-ppt 牛顿三大定律— 从主题生成 PPT/openmaic-ppt export classroom abc123— 导出已有课堂
./skill/scripts/export_ppt.sh "牛顿三大定律"
./skill/scripts/export_ppt.sh --classroom-id abc123
./skill/scripts/export_ppt.sh "topic" --lang en-US --base-url http://localhost:3000用户输入 → Skill/脚本
→ POST /api/generate-classroom(生成课堂)
→ GET /api/generate-classroom/{jobId}(轮询)
→ POST /api/export/pptx(导出 PPTX)
→ 可编辑 .pptx 文件
核心改造:将原本耦合在 React hook 中的 PPTX 构建逻辑抽取为 pptx-core.ts,通过 PptxEnvironmentAdapter 接口抽象浏览器依赖,使同一套构建逻辑可在前端和服��端复用。
- 仅导出 slide 类型场景(quiz/interactive/pbl 跳过)
- 服务端导出不支持视频/音频元素嵌入
- SVG 形状使用纯字符串构建(非 DOM 渲染)