🚀 快速安装

复制以下命令并运行,立即安装此 Skill:

npx @anthropic-ai/skills install jimliu/baoyu-skills/baoyu-slide-deck

💡 提示:需要 Node.js 和 NPM

幻灯片生成器

将内容转换为专业的幻灯片图像。

使用方法

/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 文件的目录路径为 {baseDir}
  2. 脚本路径 = {baseDir}/scripts/<脚本名称>.ts
  3. 解析 ${BUN_X} 运行时:如果已安装 bun → 使用 bun;如果 npx 可用 → 使用 npx -y bun;否则建议安装 bun
脚本 用途
scripts/merge-to-pptx.ts 将幻灯片合并到 PowerPoint
scripts/merge-to-pdf.ts 将幻灯片合并到 PDF

选项

选项 描述
--style <名称> 视觉样式:预设名称、custom 或自定义样式名称
--audience <类型> 目标受众:初学者、中级、专家、高管、大众
--lang <代码> 输出语言(en, zh, ja 等)
--slides <数字> 目标幻灯片数量(推荐 8-25,最多 30)
--outline-only 仅生成大纲,跳过图像生成
--prompts-only 生成大纲 + 提示词,跳过图像
--images-only 从现有的提示词目录生成图像
--regenerate <N> 重新生成特定幻灯片:--regenerate 3--regenerate 2,5,8

根据内容长度推荐的幻灯片数量

内容 幻灯片数量
< 1000 词 5-10
1000-3000 词 10-18
3000-5000 词 15-25
> 5000 词 20-30(考虑拆分)

样式系统

预设

预设 维度组合 最适合
blueprint(默认) 网格 + 冷静 + 技术感 + 均衡 架构、系统设计
chalkboard 有机 + 温暖 + 手写感 + 均衡 教育、教程
corporate 干净 + 专业 + 几何感 + 均衡 投资者演示、提案
minimal 干净 + 中性 + 几何感 + 极简 高管简报
sketch-notes 有机 + 温暖 + 手写感 + 均衡 教育、教程
watercolor 有机 + 温暖 + 人文感 + 极简 生活方式、健康
dark-atmospheric 干净 + 暗色调 + 编辑感 + 均衡 娱乐、游戏
notion 干净 + 中性 + 几何感 + 密集 产品演示、软件即服务
bold-editorial 干净 + 鲜艳 + 编辑感 + 均衡 产品发布、主题演讲
editorial-infographic 干净 + 冷静 + 编辑感 + 密集 技术讲解、研究
fantasy-animation 有机 + 鲜艳 + 手写感 + 极简 教育性故事讲述
intuition-machine 干净 + 冷静 + 技术感 + 密集 技术文档、学术
pixel-art 像素 + 鲜艳 + 技术感 + 均衡 游戏、开发者演讲
scientific 干净 + 冷静 + 技术感 + 密集 生物学、化学、医学
vector-illustration 干净 + 鲜艳 + 人文感 + 均衡 创意、儿童内容
vintage 纸张 + 温暖 + 编辑感 + 均衡 历史、遗产

样式维度

维度 选项 描述
纹理 干净、网格、有机、像素、纸张 视觉纹理和背景处理
情绪 专业、温暖、冷静、鲜艳、暗色、中性 色温和调色板风格
字体 几何感、人文感、手写感、编辑感、技术感 标题和正文字体样式
密度 极简、均衡、密集 每张幻灯片的信息密度

完整规范:references/dimensions/*.md

自动样式选择

内容信号 预设
教程、学习、教育、指南、初学者 sketch-notes
课堂、教学、学校、黑板 chalkboard
架构、系统、数据、分析、技术 blueprint
创意、儿童、小孩、可爱 vector-illustration
简报、学术、研究、双语 intuition-machine
高管、极简、干净、简单 minimal
软件即服务、产品、仪表盘、指标 notion
投资者、季度、商业、企业 corporate
发布、营销、主题演讲、杂志 bold-editorial
娱乐、音乐、游戏、氛围 dark-atmospheric
讲解、新闻业、科学传播 editorial-infographic
故事、奇幻、动画、魔法 fantasy-animation
游戏、复古、像素、开发者 pixel-art
生物学、化学、医学、科学 scientific
历史、遗产、复古、探险 vintage
生活方式、健康、旅行、艺术 watercolor
默认 blueprint

设计理念

幻灯片专为阅读和分享设计,而非现场演示:

  • 每张幻灯片无需口头解说即可自明其义
  • 滚动时逻辑流畅
  • 每张幻灯片内包含所有必要的上下文
  • 针对社交媒体分享优化

参见 references/design-guidelines.md 了解:

  • 针对不同受众的设计原则
  • 视觉层次
  • 内容密度指南
  • 颜色和字体选择
  • 字体推荐

参见 references/layouts.md 了解布局选项。

文件管理

输出目录

slide-deck/{主题标识符}/
├── source-{标识符}.{扩展名}
├── outline.md
├── prompts/
│   └── 01-slide-cover.md, 02-slide-{标识符}.md, ...
├── 01-slide-cover.png, 02-slide-{标识符}.png, ...
├── {主题标识符}.pptx
└── {主题标识符}.pdf

标识符:从内容中提取主题(2-4 个词,短横线连接)。示例:”Introduction to Machine Learning” → 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)

检查 EXTEND.md 是否存在(优先级顺序):

# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-slide-deck/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-slide-deck/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-slide-deck/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md") { "user" }

┌──────────────────────────────────────────────────┬───────────────────┐
│ 路径 │ 位置 │
├──────────────────────────────────────────────────┼───────────────────┤
│ .baoyu-skills/baoyu-slide-deck/EXTEND.md │ 项目目录 │
├──────────────────────────────────────────────────┼───────────────────┤
│ $HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md │ 用户主目录 │
└──────────────────────────────────────────────────┴───────────────────┘

当找到 EXTEND.md 时 → 读取、解析、向用户输出摘要

📋 已从 [完整路径] 加载偏好设置
├─ 样式:[预设/自定义名称]
├─ 受众:[受众 或 "自动检测"]
├─ 语言:[语言 或 "自动检测"]
└─ 审核:[启用/禁用]

当未找到 EXTEND.md 时 → 使用 AskUserQuestion 进行首次设置或继续使用默认值。

EXTEND.md 支持:首选样式 | 自定义维度 | 默认受众 | 语言偏好 | 审核偏好

架构:references/config/preferences-schema.md

1.2 分析内容

  1. 保存源内容(如果粘贴,保存为 source.md
    • 备份规则:如果 source.md 已存在,重命名为 source-backup-YYYYMMDD-HHMMSS.md
  2. 遵循 references/analysis-framework.md 进行内容分析
  3. 分析内容信号以提供样式建议
  4. 检测源语言
  5. 确定推荐的幻灯片数量
  6. 从内容生成主题标识符

1.3 检查现有内容 ⚠️ 必需步骤

在进入步骤 2 之前必须执行。

使用 Bash 检查输出目录是否存在:

test -d "slide-deck/{主题标识符}" && echo "exists"

如果目录存在,使用 AskUserQuestion:

标题:"现有内容"
问题:"发现现有内容。如何处理?"
选项:
  - 标签:"重新生成大纲"
    描述:"保留图像,仅重新生成大纲"
  - 标签:"重新生成图像"
    描述:"保留大纲,仅重新生成图像"
  - 标签:"备份并重新生成"
    描述:"备份到 {标识符}-backup-{时间戳},然后重新生成所有内容"
  - 标签:"退出"
    描述:"取消,保持现有内容不变"

保存到 analysis.md,包含:

  • 主题、受众、内容信号
  • 推荐样式(基于自动样式选择)
  • 推荐的幻灯片数量
  • 语言检测结果

步骤 2:确认 ⚠️ 必需步骤

两轮确认:始终执行第 1 轮,仅当选择了”自定义维度”时才执行第 2 轮。

语言:使用用户的输入语言或保存的语言偏好。

显示摘要

  • 识别出的内容类型 + 主题
  • 语言:[来自 EXTEND.md 或检测到的语言]
  • 推荐样式:[预设名称](基于内容信号)
  • 推荐幻灯片数量:[N](基于内容长度)

第 1 轮(始终执行)

使用 AskUserQuestion 提出全部 5 个问题:

问题 1:样式

标题:"样式"
问题:"此幻灯片使用哪种视觉样式?"
选项:
  - 标签:"{推荐的预设}(推荐)"
    描述:"基于内容分析的最佳匹配"
  - 标签:"{备选预设}"
    描述:"[备选样式描述]"
  - 标签:"自定义维度"
    描述:"分别选择纹理、情绪、字体、密度"

问题 2:受众

标题:"受众"
问题:"谁是主要读者?"
选项:
  - 标签:"大众读者(推荐)"
    描述:"广泛吸引力,内容易懂"
  - 标签:"初学者/学习者"
    描述:"教育重点,清晰解释"
  - 标签:"专家/专业人士"
    描述:"技术深度,领域知识"
  - 标签:"高管"
    描述:"高层见解,细节最少"

问题 3:幻灯片数量

标题:"幻灯片数量"
问题:"想要多少张幻灯片?"
选项:
  - 标签:"{N} 张(推荐)"
    描述:"基于内容长度"
  - 标签:"更少({N-3} 张)"
    描述:"更紧凑,细节较少"
  - 标签:"更多({N+3} 张)"
    描述:"更详细的分解"

问题 4:审核大纲

标题:"大纲"
问题:"生成提示词前是否审核大纲?"
选项:
  - 标签:"是,审核大纲(推荐)"
    描述:"审核幻灯片标题和结构"
  - 标签:"否,跳过大纲审核"
    描述:"直接进入提示词生成"

问题 5:审核提示词

标题:"提示词"
问题:"生成图像前是否审核提示词?"
选项:
  - 标签:"是,审核提示词(推荐)"
    描述:"审核图像生成提示词"
  - 标签:"否,跳过提示词审核"
    描述:"直接进入图像生成"

第 2 轮(仅当选择了”自定义维度”时执行)

使用 AskUserQuestion 提出全部 4 个维度问题:

问题 1:纹理

标题:"纹理"
问题:"选择哪种视觉纹理?"
选项:
  - 标签:"干净"
    描述:"纯色背景,无纹理"
  - 标签:"网格"
    描述:"细微的网格覆盖,技术感"
  - 标签:"有机"
    描述:"柔和的纹理,手绘感"
  - 标签:"像素"
    描述:"粗像素,8位美学"

(注:”纸张”可通过”其他”选项提供)

问题 2:情绪

标题:"情绪"
问题:"选择哪种色彩情绪?"
选项:
  - 标签:"专业"
    描述:"冷静中性,海军蓝/金色"
  - 标签:"温暖"
    描述:"大地色系,友好"
  - 标签:"冷静"
    描述:"蓝色、灰色,分析感"
  - 标签:"鲜艳"
    描述:"高饱和度,大胆"

(注:”暗色”、”中性”可通过”其他”选项提供)

问题 3:字体

标题:"字体"
问题:"选择哪种字体风格?"
选项:
  - 标签:"几何感"
    描述:"现代无衬线,干净"
  - 标签:"人文感"
    描述:"友好,易读"
  - 标签:"手写感"
    描述:"马克笔/画笔,有机"
  - 标签:"编辑感"
    描述:"杂志风格,戏剧性"

(注:”技术感”可通过”其他”选项提供)

问题 4:密度

标题:"密度"
问题:"信息密度如何?"
选项:
  - 标签:"均衡(推荐)"
    描述:"每张幻灯片 2-3 个关键点"
  - 标签:"极简"
    描述:"一个焦点,最大留白"
  - 标签:"密集"
    描述:"多个数据点,紧凑"

第 2 轮之后:将自定义维度存储为样式配置。

确认之后

  1. 使用确认的偏好设置更新 analysis.md
  2. 从问题 4 存储 skip_outline_review 标志
  3. 从问题 5 存储 skip_prompt_review 标志
  4. → 步骤 3

步骤 3:生成大纲

使用步骤 2 中确认的样式创建大纲。

样式解析

  • 如果选择了预设 → 读取 references/styles/{预设名称}.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

标题:"确认"
问题:"准备生成提示词了吗?"
选项:
  - 标签:"是,继续(推荐)"
    描述:"生成图像提示词"
  - 标签:"先编辑大纲"
    描述:"我将在继续前修改 outline.md"
  - 标签:"重新生成大纲"
    描述:"使用不同的方法创建新大纲"

收到回复后

  1. 如果是”先编辑大纲” → 通知用户编辑 outline.md,准备就绪后再次询问
  2. 如果是”重新生成大纲” → 返回步骤 3
  3. 如果是”是,继续” → 继续到步骤 5

步骤 5:生成提示词

  1. 读取 references/base-prompt.md
  2. 对于大纲中的每张幻灯片:
    • 从大纲中提取 STYLE_INSTRUCTIONS(不再从样式文件中读取)
    • 添加幻灯片特定的内容
    • 如果指定了 布局:,则包含来自 references/layouts.md 的布局指南
  3. 保存到 prompts/ 目录
    • 备份规则:如果提示词文件已存在,重命名为 prompts/NN-slide-{标识符}-backup-YYYYMMDD-HHMMSS.md

生成后

  • 如果是 --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

标题:"确认"
问题:"准备生成幻灯片图像了吗?"
选项:
  - 标签:"是,继续(推荐)"
    描述:"生成所有幻灯片图像"
  - 标签:"先编辑提示词"
    描述:"我将在继续前修改提示词"
  - 标签:"重新生成提示词"
    描述:"使用不同的方法创建新提示词"

收到回复后

  1. 如果是”先编辑提示词” → 通知用户编辑提示词,准备就绪后再次询问
  2. 如果是”重新生成提示词” → 返回步骤 5
  3. 如果是”是,继续” → 继续到步骤 7

步骤 7:生成图像

对于 --images-only:从现有提示词开始此步骤。

对于 --regenerate N:仅重新生成指定的幻灯片。

标准流程

  1. 选择可用的图像生成技能
  2. 生成会话 ID:slides-{主题标识符}-{时间戳}
  3. 对于每张幻灯片:
    • 备份规则:如果图像文件已存在,重命名为 NN-slide-{标识符}-backup-YYYYMMDD-HHMMSS.png
    • 使用相同的会话 ID 按顺序生成图像
  4. 报告进度:”已生成 X/N”(使用用户的语言)
  5. 失败时自动重试一次,然后再报告错误

步骤 8:合并为 PPTX 和 PDF

${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>
${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>

步骤 9:输出摘要

语言:使用用户的输入语言或保存的语言偏好。

幻灯片生成完成!

主题:[主题]
样式:[预设名称 或 自定义维度]
位置:[目录路径]
幻灯片:共 N 张

- 01-slide-cover.png - 封面
- 02-slide-intro.png - 内容
- ...
- {NN}-slide-back-cover.png - 封底

大纲:outline.md
PPTX:{主题标识符}.pptx
PDF:{主题标识符}.pdf

部分工作流程

选项 工作流程
--outline-only 仅执行步骤 1-3(生成大纲后停止)
--prompts-only 执行步骤 1-5(生成提示词,跳过图像)
--images-only 跳到步骤 7(需要现有的 prompts/ 目录)
--regenerate N 仅重新生成指定的幻灯片

使用 --prompts-only

生成大纲和提示词,不生成图像:

/baoyu-slide-deck content.md --prompts-only

输出:outline.md + prompts/*.md 可供审核/编辑。

使用 --images-only

从现有提示词生成图像(从步骤 7 开始):

/baoyu-slide-deck slide-deck/topic-slug/ --images-only

前置条件:

  • 包含幻灯片提示词文件的 prompts/ 目录
  • 包含样式信息的 outline.md

使用 --regenerate

重新生成特定幻灯片:

# 单张幻灯片
/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-{标识符}.md
  2. 运行:/baoyu-slide-deck <目录> --regenerate N
  3. 或手动重新生成图像 + PDF

重要:更新幻灯片时,务必先更新提示词文件 (prompts/NN-slide-{标识符}.md),然后再重新生成。这可确保更改被记录且可重现。

添加新幻灯片

  1. 在指定位置创建提示词:prompts/NN-slide-{新标识符}.md
  2. 使用相同的会话 ID 生成图像
  3. 重新编号:后续文件 NN+1(标识符保持不变)
  4. 更新 outline.md
  5. 重新生成 PPTX/PDF

删除幻灯片

  1. 移除 NN-slide-{标识符}.pngprompts/NN-slide-{标识符}.md
  2. 重新编号:后续文件 NN-1(标识符保持不变)
  3. 更新 outline.md
  4. 重新生成 PPTX/PDF

文件命名

格式:NN-slide-[标识符].png

  • NN:两位数字序列(01, 02, …)
  • 标识符:从内容生成的短横线连接词(2-5 个词,唯一)

重新编号规则:仅 NN 更改,标识符保持不变。

完整详情参见 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/<样式名称>.md 完整样式规范(旧版)
references/config/preferences-schema.md EXTEND.md 结构

备注

  • 图像生成:每张幻灯片 10-30 秒
  • 生成失败时自动重试一次
  • 对于敏感的公众人物,使用风格化的替代方案
  • 通过会话 ID 保持样式一致性
  • 步骤 2 确认是必需步骤 – 请勿跳过(样式、受众、幻灯片数量、大纲审核、提示词审核)
  • 步骤 4 是条件性步骤 – 仅当用户在步骤 2 中请求大纲审核时才执行
  • 步骤 6 是条件性步骤 – 仅当用户在步骤 2 中请求提示词审核时才执行

扩展支持

通过 EXTEND.md 进行自定义配置。参见步骤 1.1了解路径和支持的选项。

📄 原始文档

完整文档(英文):

https://skills.sh/jimliu/baoyu-skills/baoyu-slide-deck

💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。