📦 QoderWork PPT — 智能PPT生成
v1.0.0输入主题,自动匹配14套模板,生成可编辑的QoderWork风格PPTX演示文稿,含封面、目录、章节与内容页,默认8-15页,支持续写与多媒体填充。
详细分析 ▾
运行时依赖
版本
QoderWork PPT技能首次发布。 - 根据用户主题自动生成QoderWork风格演示文稿,匹配14套内置模板。 - 输出可编辑的.pptx文件,含封面、目录、章节分隔页与内容页(默认8–15页)。 - 自动填充模板,管理内容生成、插槽映射及所需多媒体。 - 支持可恢复流水线:内容/幻灯片结构复用、模板填充、HTML转PPTX。 - 输出文件置于项目根目录`output/`,并提供详细结构与使用说明。
安装命令
点击复制技能文档
# QoderWork-PPT 当用户想要生成 QoderWork 风格演示文稿时,使用此技能。根据用户提供的主题与需求,自动生成内容、匹配合适模板,并输出可编辑的 PowerPoint 文件。 ## 执行流程 ### 0. 准备输出目录 若目录不存在,先创建: ``bash mkdir -p output output/images ` ### 1. 理解需求并生成内容文档 读取本技能目录下的 rules/content-rules.md,然后将用户需求转换为结构化内容文档,保存为 output/content.md。 - 从用户输入中提取:主题、受众、要点、页数偏好等 - 按 content-rules 生成结构清晰的纯文本文档 - 内容需完整、逻辑清晰,可直接用于模板匹配 - 关键——页数预算:除非用户明确要求更多,否则总页数控制在 8–15 张幻灯片(含封面、目录、章节分隔、结尾)。进入第 2 步前统计计划页数,若超过 15 则合并或删减。 ### 2. 匹配模板并生成幻灯片序列 读取 rules/template-matching.md 与 templates/manifest.json,依据 content.md 生成 output/slides.json。 - slides.json 数组长度必须 ≤ 15(除非用户明确要求更多)。写入前务必统计。 - 每页格式:{ "templateId": "xxx", "slots": { "slotId": "value", ... } } - 完整示例(每种模板一页)见 rules/slides-example.json——可复制并修改 - 严格遵守模板匹配规则;槽位值必须符合 manifest 约束(类型、maxLength 等) 封面背景:cover 模板的 coverBackground 槽位不要主动填写,使用模板默认背景。仅当用户明确要求自定义封面图时才填。 章节分隔插图:03 章节分隔页右侧的 image 槽位尽量勿填,使用模板默认插图。仅当用户明确要求更换章节配图时才填。 Image slots (type: image) 接受以下任一形式: | 格式 | 示例 | 使用场景 | |--------|---------|-------------| | lucide: | lucide:shield-check | 图标风格图片(06/07/08 卡片栏优先) | | 图片 URL | https://example.com/photo.jpg | 网络图片 | | 本地路径 | output/images/slide-03.png | 本地生成/下载的图片 | 当必须生成/搜索真实图片:若槽位标记 aiGeneratable: true 且需要真实照片或插图(非图标)——通常是章节分隔图、左文右图图、全图背景——则调用 generate_image 或 web_search 获取,保存到 output/images/,并将路径填入槽位。 这些图片槽位为必填——不要保留默认占位图。 ### 3. 填充 HTML 模板 工作目录(cwd):必须为项目根(即 output/ 所在目录)。 脚本路径:相对于本技能目录。将下文中的 SKILL_SCRIPTS 替换为实际路径(如将本仓库作为工作区时为 resources/skills-market/qoderwork-ppt/scripts,若从市场安装则为 ~/.qoderwork/skills/qoderwork-ppt/scripts)。 可选——先验证: `bash node SKILL_SCRIPTS/validate-slides.js output/slides.json ` 然后填充模板(或直接使用下方一键流水线): `bash node SKILL_SCRIPTS/fill-template.js output/slides.json ` 推荐——一键流水线(步骤 3+4 合并): `bash node SKILL_SCRIPTS/run-pipeline.js output/slides.json ` 输出文件自动带时间戳命名(如 output/presentation-2026-03-06-10-30-00.pptx),避免覆盖旧文件。 ### 4. 转换为 PPTX 若未使用上述一键流水线,可单独执行: `bash node SKILL_SCRIPTS/html-to-pptx-dom.js output/filled ` 读取 output/filled/ 中的已填充 HTML,通过 Puppeteer 渲染并使用 dom-to-pptx 转换为 PPTX——保留背景图、圆角、字体及完整样式。 ### 5. 通知用户 告知用户 PPT 已生成于 output/presentation.pptx,并简要说明页数与结构。 ## 可恢复性(Agent 断点续跑) - 步骤 1:若 output/content.md 已存在且用户未要求“重新生成内容”,则跳过至步骤 2。 - 步骤 2:始终(重新)根据 content.md 生成 output/slides.json。 - 步骤 3+4:若仅 slides.json 有变化,只需重新运行 run-pipeline.js(会覆盖 output/filled/ 与 output/presentation.pptx)。 ## 关键文件(位于本技能目录) | 文件 | 用途 | |------|---------| | rules/content-rules.md | 内容生成规则与文档结构 | | rules/template-matching.md | 模板匹配规则与图片槽位约定 | | rules/slides-example.json | 完整 slides.json 示例(每模板一页) | | templates/manifest.json | 14 套模板定义及槽位规范 | | templates/.html | 14 个 HTML 模板文件(1920×1080) | | scripts/validate-slides.js | slides.json 预校验 | | scripts/fill-template.js | 将槽位值填入 HTML 模板 | | scripts/html-to-pptx-dom.js | 高保真 HTML → PPTX 转换 | | scripts/run-pipeline.js | 一键:验证→填充→转换 | ## 输出文件(位于项目根 output/) | 文件 | 用途 | |------|---------| | output/content.md | 中间产物:结构化内容 | | output/slides.json | 中间产物:幻灯片序列 + 槽位值 | | output/images/ | 幻灯片用到的生成/下载图片 | | output/filled/.html | 已填充的单页 HTML 文件 | | output/presentation.pptx | 最终 PowerPoint 文件 | ## 依赖 首次使用前,请在本技能目录安装依赖: `bash cd && npm install ` 所需包:jsdom、puppeteer、dom-to-pptx、lucide-static。 图标从本地 lucide-static` 加载(运行时无网络请求)。