# baoyu-slide-deck > 保留图像,仅重新生成大纲 - Author: acs1899 - Repository: acs1899/baoyu-skills - Version: 20260125004404 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/acs1899/baoyu-skills - Web: https://mule.run/skillshub/@@acs1899/baoyu-skills~baoyu-slide-deck:20260125004404 --- --- name: baoyu-slide-deck description: 从内容生成专业幻灯片图像。创建带有样式说明的大纲,然后生成单独的幻灯片图像。当用户要求"创建幻灯片"、"制作演示文稿"、"生成演示"、"幻灯片"或"PPT"时使用。 --- # 幻灯片生成器 将内容转换为专业的幻灯片图像。 ## 用法 ```bash /baoyu-slide-deck path/to/content.md /baoyu-slide-deck path/to/content.md --style sketch-notes /baoyu-slide-deck path/to/content.md --audience executives /baoyu-slide-deck path/to/content.md --lang zh /baoyu-slide-deck path/to/content.md --slides 10 /baoyu-slide-deck path/to/content.md --outline-only /baoyu-slide-deck # 然后粘贴内容 ``` ## 脚本目录 **代理执行说明**: 1. 确定此 SKILL.md 文件的目录路径为 `SKILL_DIR` 2. 脚本路径 = `${SKILL_DIR}/scripts/.ts` | 脚本 | 用途 | |--------|---------| | `scripts/merge-to-pptx.ts` | 合并幻灯片为 PowerPoint | | `scripts/merge-to-pdf.ts` | 合并幻灯片为 PDF | ## 选项 | 选项 | 描述 | |--------|-------------| | `--style ` | 视觉样式:预设名称、`custom` 或自定义样式名称 | | `--audience ` | 目标受众:beginners、intermediate、experts、executives、general | | `--lang ` | 输出语言(en、zh、ja 等) | | `--slides ` | 目标幻灯片数量(建议 8-25,最多 30) | | `--outline-only` | 仅生成大纲,跳过图像生成 | | `--prompts-only` | 生成大纲和提示词,跳过图像 | | `--images-only` | 从现有提示词目录生成图像 | | `--regenerate ` | 重新生成特定幻灯片:`--regenerate 3` 或 `--regenerate 2,5,8` | **根据内容长度确定幻灯片数量**: | 内容 | 幻灯片 | |---------|--------| | < 1000 词 | 5-10 | | 1000-3000 词 | 10-18 | | 3000-5000 词 | 15-25 | | > 5000 词 | 20-30(考虑拆分) | ## 样式系统 ### 预设 | 预设 | 维度 | 适用场景 | |--------|------------|----------| | `blueprint`(默认) | grid + cool + technical + balanced | 架构、系统设计 | | `chalkboard` | organic + warm + handwritten + balanced | 教育、教程 | | `corporate` | clean + professional + geometric + balanced | 投资者演示、提案 | | `minimal` | clean + neutral + geometric + minimal | 高管简报 | | `sketch-notes` | organic + warm + handwritten + balanced | 教育、教程 | | `watercolor` | organic + warm + humanist + minimal | 生活方式、健康 | | `dark-atmospheric` | clean + dark + editorial + balanced | 娱乐、游戏 | | `notion` | clean + neutral + geometric + dense | 产品演示、SaaS | | `bold-editorial` | clean + vibrant + editorial + balanced | 产品发布、主题演讲 | | `editorial-infographic` | clean + cool + editorial + dense | 技术讲解、研究 | | `fantasy-animation` | organic + vibrant + handwritten + minimal | 教育故事 | | `intuition-machine` | clean + cool + technical + dense | 技术文档、学术 | | `pixel-art` | pixel + vibrant + technical + balanced | 游戏、开发者演讲 | | `scientific` | clean + cool + technical + dense | 生物、化学、医学 | | `vector-illustration` | clean + vibrant + humanist + balanced | 创意、儿童内容 | | `vintage` | paper + warm + editorial + balanced | 历史、传承 | ### 样式维度 | 维度 | 选项 | 描述 | |-----------|---------|-------------| | **纹理** | clean、grid、organic、pixel、paper | 视觉纹理和背景处理 | | **氛围** | professional、warm、cool、vibrant、dark、neutral | 色温和调色板风格 | | **字体** | geometric、humanist、handwritten、editorial、technical | 标题和正文样式 | | **密度** | minimal、balanced、dense | 每张幻灯片的信息密度 | 完整规格:`references/dimensions/*.md` ### 自动样式选择 | 内容信号 | 预设 | |-----------------|--------| | tutorial、learn、education、guide、beginner | `sketch-notes` | | classroom、teaching、school、chalkboard | `chalkboard` | | architecture、system、data、analysis、technical | `blueprint` | | creative、children、kids、cute | `vector-illustration` | | briefing、academic、research、bilingual | `intuition-machine` | | executive、minimal、clean、simple | `minimal` | | saas、product、dashboard、metrics | `notion` | | investor、quarterly、business、corporate | `corporate` | | launch、marketing、keynote、magazine | `bold-editorial` | | entertainment、music、gaming、atmospheric | `dark-atmospheric` | | explainer、journalism、science communication | `editorial-infographic` | | story、fantasy、animation、magical | `fantasy-animation` | | gaming、retro、pixel、developer | `pixel-art` | | biology、chemistry、medical、scientific | `scientific` | | history、heritage、vintage、expedition | `vintage` | | lifestyle、wellness、travel、artistic | `watercolor` | | 默认 | `blueprint` | ## 设计理念 幻灯片设计用于**阅读和分享**,而非现场演示: - 每张幻灯片无需口头解说即可自解释 - 滚动时具有逻辑流程 - 每张幻灯片包含所有必要上下文 - 针对社交媒体分享优化 参见 `references/design-guidelines.md` 了解: - 受众特定原则 - 视觉层次 - 内容密度指南 - 颜色和字体选择 - 字体推荐 参见 `references/layouts.md` 了解布局选项。 ## 文件管理 ### 输出目录 ``` slide-deck/{topic-slug}/ ├── source-{slug}.{ext} ├── outline.md ├── prompts/ │ └── 01-slide-cover.md, 02-slide-{slug}.md, ... ├── 01-slide-cover.png, 02-slide-{slug}.png, ... ├── {topic-slug}.pptx └── {topic-slug}.pdf ``` **Slug**:提取主题(2-4 个词,kebab-case)。示例:"机器学习入门" → `intro-machine-learning` **冲突处理**:参见步骤 1.3 了解现有内容检测和用户选项。 ## 语言处理 **检测优先级**: 1. `--lang` 标志(显式) 2. EXTEND.md `language` 设置 3. 用户对话语言(输入语言) 4. 源内容语言 **规则**:所有响应使用用户首选语言: - 问题和确认 - 进度报告 - 错误消息 - 完成摘要 技术术语(样式名称、文件路径、代码)保持英文。 ## 工作流程 复制此清单并在完成时勾选: ``` 幻灯片进度: - [ ] 步骤 1:设置和分析 - [ ] 1.1 加载偏好设置 - [ ] 1.2 分析内容 - [ ] 1.3 检查现有内容 ⚠️ 必需 - [ ] 步骤 2:确认 ⚠️ 必需(第 1 轮,第 2 轮可选) - [ ] 步骤 3:生成大纲 - [ ] 步骤 4:审核大纲(有条件) - [ ] 步骤 5:生成提示词 - [ ] 步骤 6:审核提示词(有条件) - [ ] 步骤 7:生成图像 - [ ] 步骤 8:合并为 PPTX/PDF - [ ] 步骤 9:输出摘要 ``` ### 流程 ``` 输入 → 偏好设置 → 分析 → [检查现有?] → 确认(1-2 轮) → 大纲 → [审核大纲?] → 提示词 → [审核提示词?] → 图像 → 合并 → 完成 ``` ### 步骤 1:设置和分析 **1.1 加载偏好设置(EXTEND.md)** 使用 Bash 检查 EXTEND.md 是否存在(优先级顺序): ```bash # 首先检查项目级别 test -f .baoyu-skills/baoyu-slide-deck/EXTEND.md && echo "project" # 然后用户级别(跨平台:$HOME 在 macOS/Linux/WSL 上有效) test -f "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "user" ``` ┌──────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-slide-deck/EXTEND.md │ 项目目录 │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md │ 用户主目录 │ └──────────────────────────────────────────────────┴───────────────────┘ **找到 EXTEND.md 时** → 读取、解析、**向用户输出摘要**: ``` 📋 已从 [完整路径] 加载偏好设置 ├─ 样式:[预设/自定义名称] ├─ 受众:[受众或"自动检测"] ├─ 语言:[语言或"自动检测"] └─ 审核:[启用/禁用] ``` **未找到 EXTEND.md 时** → 使用 AskUserQuestion 进行首次设置或使用默认值继续。 **EXTEND.md 支持**:首选样式 | 自定义维度 | 默认受众 | 语言偏好 | 审核偏好 Schema:`references/config/preferences-schema.md` **1.2 分析内容** 1. 保存源内容(如果是粘贴的,保存为 `source.md`) 2. 按照 `references/analysis-framework.md` 进行内容分析 3. 分析内容信号以获取样式推荐 4. 检测源语言 5. 确定推荐的幻灯片数量 6. 从内容生成主题 slug **1.3 检查现有内容** ⚠️ 必需 **必须在进入步骤 2 之前执行。** 使用 Bash 检查输出目录是否存在: ```bash test -d "slide-deck/{topic-slug}" && echo "exists" ``` **如果目录存在**,使用 AskUserQuestion: ``` header: "现有内容" question: "发现现有内容。如何处理?" options: - label: "重新生成大纲" description: "保留图像,仅重新生成大纲" - label: "重新生成图像" description: "保留大纲,仅重新生成图像" - label: "备份并重新生成" description: "备份到 {slug}-backup-{timestamp},然后重新生成所有内容" - label: "退出" description: "取消,保持现有内容不变" ``` **保存到 `analysis.md`**,包含: - 主题、受众、内容信号 - 推荐样式(基于自动样式选择) - 推荐幻灯片数量 - 语言检测 ### 步骤 2:确认 ⚠️ 必需 **两轮确认**:第 1 轮始终进行,第 2 轮仅在选择"自定义维度"时进行。 **语言**:使用用户的输入语言或保存的语言偏好。 **显示摘要**: - 内容类型 + 识别的主题 - 语言:[来自 EXTEND.md 或检测] - **推荐样式**:[预设](基于内容信号) - **推荐幻灯片**:[N](基于内容长度) #### 第 1 轮(始终) **使用 AskUserQuestion** 处理所有 5 个问题: **问题 1:样式** ``` header: "样式" question: "此演示使用哪种视觉样式?" options: - label: "{recommended_preset}(推荐)" description: "根据内容分析的最佳匹配" - label: "{alternative_preset}" description: "[备选样式描述]" - label: "自定义维度" description: "分别选择纹理、氛围、字体、密度" ``` **问题 2:受众** ``` header: "受众" question: "主要读者是谁?" options: - label: "普通读者(推荐)" description: "广泛吸引力,内容易于理解" - label: "初学者/学习者" description: "教育重点,清晰解释" - label: "专家/专业人士" description: "技术深度,领域知识" - label: "高管" description: "高层洞察,最少细节" ``` **问题 3:幻灯片数量** ``` header: "幻灯片" question: "需要多少张幻灯片?" options: - label: "{N} 张幻灯片(推荐)" description: "基于内容长度" - label: "更少({N-3} 张幻灯片)" description: "更精简,更少细节" - label: "更多({N+3} 张幻灯片)" description: "更详细的分解" ``` **问题 4:审核大纲** ``` header: "大纲" question: "在生成提示词之前审核大纲?" options: - label: "是,审核大纲(推荐)" description: "审核幻灯片标题和结构" - label: "否,跳过大纲审核" description: "直接进行提示词生成" ``` **问题 5:审核提示词** ``` header: "提示词" question: "在生成图像之前审核提示词?" options: - label: "是,审核提示词(推荐)" description: "审核图像生成提示词" - label: "否,跳过提示词审核" description: "直接进行图像生成" ``` #### 第 2 轮(仅在选择"自定义维度"时) **使用 AskUserQuestion** 处理所有 4 个维度: **问题 1:纹理** ``` header: "纹理" question: "选择哪种视觉纹理?" options: - label: "clean" description: "纯色,无纹理" - label: "grid" description: "微妙网格叠加,技术感" - label: "organic" description: "柔和纹理,手绘感" - label: "pixel" description: "粗糙像素,8-bit 美学" ``` (注意:"paper" 可通过其他选项获得) **问题 2:氛围** ``` header: "氛围" question: "选择哪种色彩氛围?" options: - label: "professional" description: "冷中性色,藏青/金色" - label: "warm" description: "大地色系,友好" - label: "cool" description: "蓝色、灰色,分析感" - label: "vibrant" description: "高饱和度,大胆" ``` (注意:"dark"、"neutral" 可通过其他选项获得) **问题 3:字体** ``` header: "字体" question: "选择哪种字体样式?" options: - label: "geometric" description: "现代无衬线,简洁" - label: "humanist" description: "友好,易读" - label: "handwritten" description: "马克笔/画笔,有机感" - label: "editorial" description: "杂志风格,戏剧性" ``` (注意:"technical" 可通过其他选项获得) **问题 4:密度** ``` header: "密度" question: "信息密度?" options: - label: "balanced(推荐)" description: "每张幻灯片 2-3 个要点" - label: "minimal" description: "一个焦点,最大留白" - label: "dense" description: "多个数据点,紧凑" ``` **第 2 轮之后**:将自定义维度存储为样式配置。 **确认之后**: 1. 使用确认的偏好更新 `analysis.md` 2. 存储问题 4 的 `skip_outline_review` 标志 3. 存储问题 5 的 `skip_prompt_review` 标志 4. → 步骤 3 ### 步骤 3:生成大纲 使用步骤 2 确认的样式创建大纲。 **样式解析**: - 如果选择预设 → 读取 `references/styles/{preset}.md` - 如果自定义维度 → 从 `references/dimensions/` 读取维度文件并组合 **生成**: 1. 按照 `references/outline-template.md` 的结构 2. 从样式或维度构建 STYLE_INSTRUCTIONS 3. 应用确认的受众、语言、幻灯片数量 4. 保存为 `outline.md` **生成后**: - 如果 `--outline-only`,在此停止 - 如果 `skip_outline_review` 为 true → 跳过步骤 4,转到步骤 5 - 如果 `skip_outline_review` 为 false → 继续步骤 4 ### 步骤 4:审核大纲(有条件) **如果用户在步骤 2 选择"否,跳过大纲审核",则跳过此步骤。** **目的**:在生成提示词之前审核大纲结构。 **语言**:使用用户的输入语言或保存的语言偏好。 **显示**: - 总幻灯片:N - 样式:[预设名称或"自定义:纹理+氛围+字体+密度"] - 逐张幻灯片摘要表: ``` | # | 标题 | 类型 | 布局 | |---|-------|------|--------| | 1 | [标题] | 封面 | title-hero | | 2 | [标题] | 内容 | [布局] | | 3 | [标题] | 内容 | [布局] | | ... | ... | ... | ... | ``` **使用 AskUserQuestion**: ``` header: "确认" question: "准备好生成提示词了吗?" options: - label: "是,继续(推荐)" description: "生成图像提示词" - label: "先编辑大纲" description: "我将在继续之前修改 outline.md" - label: "重新生成大纲" description: "使用不同方法创建新大纲" ``` **响应后**: 1. 如果"先编辑大纲" → 通知用户编辑 `outline.md`,准备好后再询问 2. 如果"重新生成大纲" → 返回步骤 3 3. 如果"是,继续" → 继续步骤 5 ### 步骤 5:生成提示词 1. 读取 `references/base-prompt.md` 2. 对于大纲中的每张幻灯片: - 从大纲提取 STYLE_INSTRUCTIONS(不再从样式文件读取) - 添加幻灯片特定内容 - 如果指定了 `Layout:`,从 `references/layouts.md` 包含布局指导 3. 保存到 `prompts/` 目录 **生成后**: - 如果 `--prompts-only`,在此停止并输出提示词摘要 - 如果 `skip_prompt_review` 为 true → 跳过步骤 6,转到步骤 7 - 如果 `skip_prompt_review` 为 false → 继续步骤 6 ### 步骤 6:审核提示词(有条件) **如果用户在步骤 2 选择"否,跳过提示词审核",则跳过此步骤。** **目的**:在图像生成之前审核提示词。 **语言**:使用用户的输入语言或保存的语言偏好。 **显示**: - 总提示词:N - 样式:[预设名称或自定义维度] - 提示词列表: ``` | # | 文件名 | 幻灯片标题 | |---|----------|-------------| | 1 | 01-slide-cover.md | [标题] | | 2 | 02-slide-xxx.md | [标题] | | ... | ... | ... | ``` - 提示词目录路径:`prompts/` **使用 AskUserQuestion**: ``` header: "确认" question: "准备好生成幻灯片图像了吗?" options: - label: "是,继续(推荐)" description: "生成所有幻灯片图像" - label: "先编辑提示词" description: "我将在继续之前修改提示词" - label: "重新生成提示词" description: "使用不同方法创建新提示词" ``` **响应后**: 1. 如果"先编辑提示词" → 通知用户编辑提示词,准备好后再询问 2. 如果"重新生成提示词" → 返回步骤 5 3. 如果"是,继续" → 继续步骤 7 ### 步骤 7:生成图像 **对于 `--images-only`**:从现有提示词开始。 **对于 `--regenerate N`**:仅重新生成指定的幻灯片。 **标准流程**: 1. 选择可用的图像生成技能 2. 生成会话 ID:`slides-{topic-slug}-{timestamp}` 3. 使用相同会话 ID 顺序生成每张幻灯片 4. 报告进度:"已生成 X/N"(使用用户的语言) 5. 失败时自动重试一次,然后报告错误 ### 步骤 8:合并为 PPTX 和 PDF ```bash npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts ``` ### 步骤 9:输出摘要 **语言**:使用用户的输入语言或保存的语言偏好。 ``` 幻灯片完成! 主题:[主题] 样式:[预设名称或自定义维度] 位置:[目录路径] 幻灯片:共 N 张 - 01-slide-cover.png - 封面 - 02-slide-intro.png - 内容 - ... - {NN}-slide-back-cover.png - 封底 大纲:outline.md PPTX:{topic-slug}.pptx PDF:{topic-slug}.pdf ``` ## 部分工作流程 | 选项 | 工作流程 | |--------|----------| | `--outline-only` | 仅步骤 1-3(在大纲后停止) | | `--prompts-only` | 步骤 1-5(生成提示词,跳过图像) | | `--images-only` | 跳到步骤 7(需要现有 prompts/) | | `--regenerate N` | 仅重新生成特定幻灯片 | ### 使用 `--prompts-only` 生成大纲和提示词,不生成图像: ```bash /baoyu-slide-deck content.md --prompts-only ``` 输出:`outline.md` + `prompts/*.md` 准备好供审核/编辑。 ### 使用 `--images-only` 从现有提示词生成图像(从步骤 7 开始): ```bash /baoyu-slide-deck slide-deck/topic-slug/ --images-only ``` 前提条件: - 包含幻灯片提示词文件的 `prompts/` 目录 - 包含样式信息的 `outline.md` ### 使用 `--regenerate` 重新生成特定幻灯片: ```bash # 单张幻灯片 /baoyu-slide-deck slide-deck/topic-slug/ --regenerate 3 # 多张幻灯片 /baoyu-slide-deck slide-deck/topic-slug/ --regenerate 2,5,8 ``` 流程: 1. 读取指定幻灯片的现有提示词 2. 仅为这些幻灯片重新生成图像 3. 重新生成 PPTX/PDF ## 幻灯片修改 ### 快速参考 | 操作 | 命令 | 手动步骤 | |--------|---------|--------------| | **编辑** | `--regenerate N` | 更新提示词 → 重新生成图像 → 重新生成 PDF | | **添加** | 手动 | 创建提示词 → 生成图像 → 重新编号后续 → 更新大纲 → 重新生成 PDF | | **删除** | 手动 | 删除文件 → 重新编号后续 → 更新大纲 → 重新生成 PDF | ### 编辑单张幻灯片 1. 更新 `prompts/NN-slide-{slug}.md` 中的提示词 2. 运行:`/baoyu-slide-deck --regenerate N` 3. 或手动重新生成图像 + PDF ### 添加新幻灯片 1. 在指定位置创建提示词:`prompts/NN-slide-{new-slug}.md` 2. 使用相同会话 ID 生成图像 3. **重新编号**:后续文件 NN+1(slug 不变) 4. 更新 `outline.md` 5. 重新生成 PPTX/PDF ### 删除幻灯片 1. 删除 `NN-slide-{slug}.png` 和 `prompts/NN-slide-{slug}.md` 2. **重新编号**:后续文件 NN-1(slug 不变) 3. 更新 `outline.md` 4. 重新生成 PPTX/PDF ### 文件命名 格式:`NN-slide-[slug].png` - `NN`:两位数序号(01、02……) - `slug`:从内容派生的 kebab-case(2-5 个词,唯一) **重新编号规则**:只有 NN 改变,slug 保持不变。 参见 `references/modification-guide.md` 了解完整详情。 ## 参考文件 | 文件 | 内容 | |------|---------| | `references/analysis-framework.md` | 演示文稿内容分析 | | `references/outline-template.md` | 大纲结构和格式 | | `references/modification-guide.md` | 编辑、添加、删除幻灯片工作流程 | | `references/content-rules.md` | 内容和样式指南 | | `references/design-guidelines.md` | 受众、字体、颜色、视觉元素 | | `references/layouts.md` | 布局选项和选择技巧 | | `references/base-prompt.md` | 图像生成基础提示词 | | `references/dimensions/*.md` | 维度规格(纹理、氛围、字体、密度) | | `references/dimensions/presets.md` | 预设 → 维度映射 | | `references/styles/