关于 baoyu-slide-deck
baoyu-slide-deck 是将内容整理为适合阅读和分享的幻灯片图片的技能,可生成大纲、提示词和图片,并合并为 PowerPoint 或 PDF。它支持多种预设风格、受众和语言选项。
主要功能
- 01从内容生成幻灯片大纲与图片
- 02提供多种预设视觉风格
- 03可指定受众、语言和页数
- 04支持仅生成大纲或提示词
- 05合并幻灯片为 PPTX 或 PDF
适用场景
- 01将文档内容制作成可分享的幻灯片
- 02为技术说明或研究内容生成图文页面
- 03按受众与语言制作不同版本的演示稿
- 04只生成大纲或提示词以供审核
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ spacezephyr/ space-gpt-image2-design --skill baoyu-slide-deck安装后在 Claude Code 中输入/baoyu-slide-deck确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.labnana.env.examplereferences/analysis-framework.mdbase-prompt.mdcontent-rules.mddesign-guidelines.mdlayouts.mdmodification-guide.mdoutline-template.mdreferences/config/preferences-schema.mdreferences/dimensions/density.mdmood.mdpresets.mdtexture.mdtypography.mdreferences/styles/blueprint.mdbold-editorial.mdchalkboard.mdcorporate.mddark-atmospheric.mdeditorial-infographic.mdfantasy-animation.mdintuition-machine.mdminimal.mdnotion.mdpixel-art.mdscientific.mdsketch-notes.mdvector-illustration.mdvintage.mdwatercolor.md详细介绍
幻灯片生成器
将内容转换为专业的幻灯片图像。
用法
/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 # Then paste content
脚本目录
Agent 执行说明:
- 将此 SKILL.md 文件所在目录路径确定为
SKILL_DIR - 脚本路径 =
${SKILL_DIR}/scripts/<script-name>.ts
| 脚本 | 用途 |
|---|---|
scripts/merge-to-pptx.ts | 将幻灯片合并为 PowerPoint |
scripts/merge-to-pdf.ts | 将幻灯片合并为 PDF |
选项
| 选项 | 说明 |
|---|---|
--style <name> | 视觉风格:预设名称、custom 或自定义风格名称 |
--audience <type> | 目标受众:初学者、中级用户、专家、管理人员、一般受众 |
--lang <code> | 输出语言(en、zh、ja 等) |
--slides <number> | 目标幻灯片数量(建议 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 | 简洁 + 中性 + 几何 + 高密度 | 产品演示、SaaS |
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 |
| SaaS、产品、仪表板、指标 | 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/{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)。示例:"Introduction to Machine Learning" → intro-machine-learning
冲突处理:有关现有内容检测和用户选项,请参阅第 1.3 步。
语言处理
检测优先级:
--lang标志(显式指定)- EXTEND.md 中的
language设置 - 用户的对话语言(输入语言)
- 源内容语言
规则:所有回复均使用用户首选的语言:
- 问题和确认信息
- 进度报告
- 错误消息
- 完成摘要
技术术语(风格名称、文件路径、代码)保持英文。
工作流
复制此清单,并在完成每项后勾选:
Slide Deck Progress:
- [ ] Step 1: Setup & Analyze
- [ ] 1.1 Load preferences
- [ ] 1.2 Analyze content
- [ ] 1.3 Check existing ⚠️ REQUIRED
- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1, optional Round 2)
- [ ] Step 3: Generate outline
- [ ] Step 4: Review outline (conditional)
- [ ] Step 5: Generate prompts
- [ ] Step 6: Review prompts (conditional)
- [ ] Step 7: Generate images
- [ ] Step 8: Merge to PPTX/PDF
- [ ] Step 9: Output summary
流程
Input → Preferences → Analyze → [Check Existing?] → Confirm (1-2 rounds) → Outline → [Review Outline?] → Prompts → [Review Prompts?] → Images → Merge → Complete
步骤 1:设置与分析
1.1 加载偏好设置(EXTEND.md)
使用 Bash 按优先级顺序检查 EXTEND.md 是否存在:
# Check project-level first
test -f .baoyu-skills/baoyu-slide-deck/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on 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 时 → 阅读、解析,并向用户输出摘要:
📋 Loaded preferences from [full path]
├─ Style: [preset/custom name]
├─ Audience: [audience or "auto-detect"]
├─ Language: [language or "auto-detect"]
└─ Review: [enabled/disabled]
未找到 EXTEND.md 时 → 使用 AskUserQuestion 进行首次设置,或采用默认设置继续。
EXTEND.md 支持:偏好风格 | 自定义尺寸 | 默认受众 | 语言偏好 | 审阅偏好
架构:references/config/preferences-schema.md
1.2 分析内容
- 保存源内容(如果是粘贴的内容,则保存为
source.md)- 备份规则:如果
source.md已存在,将其重命名为source-backup-YYYYMMDD-HHMMSS.md
- 备份规则:如果
- 按照
references/analysis-framework.md进行内容分析 - 分析内容特征,为风格提供建议
- 检测源语言
- 确定推荐的幻灯片数量
- 根据内容生成主题 slug
1.3 检查现有内容 ⚠️ 必须执行
必须在继续步骤 2 之前执行。
使用 Bash 检查输出目录是否存在:
test -d "slide-deck/{topic-slug}" && echo "exists"
如果目录已存在,使用 AskUserQuestion:
header: "Existing"
question: "Existing content found. How to proceed?"
options:
- label: "Regenerate outline"
description: "Keep images, regenerate outline only"
- label: "Regenerate images"
description: "Keep outline, regenerate images only"
- label: "Backup and regenerate"
description: "Backup to {slug}-backup-{timestamp}, then regenerate all"
- label: "Exit"
description: "Cancel, keep existing content unchanged"
保存到 analysis.md,内容包括:
- 主题、受众、内容特征
- 推荐风格(基于自动风格选择)
- 推荐的幻灯片数量
- 语言检测结果
步骤 2:确认 ⚠️ 必须执行
两轮确认:始终执行第 1 轮;仅当选择“自定义尺寸”时执行第 2 轮。
语言:使用用户输入的语言或已保存的语言偏好。
显示摘要:
- 已识别的内容类型和主题
- 语言:[来自 EXTEND.md 或检测结果]
- 推荐风格:[预设](基于内容特征)
- 推荐幻灯片数量:[N](基于内容长度)
第 1 轮(始终执行)
使用 AskUserQuestion 提出全部 5 个问题:
问题 1:风格
header: "Style"
question: "Which visual style for this deck?"
options:
- label: "{recommended_preset} (Recommended)"
description: "Best match based on content analysis"
- label: "{alternative_preset}"
description: "[alternative style description]"
- label: "Custom dimensions"
description: "Choose texture, mood, typography, density separately"
问题 2:受众
header: "Audience"
question: "Who is the primary reader?"
options:
- label: "General readers (Recommended)"
description: "Broad appeal, accessible content"
- label: "Beginners/learners"
description: "Educational focus, clear explanations"
- label: "Experts/professionals"
description: "Technical depth, domain knowledge"
- label: "Executives"
description: "High-level insights, minimal detail"
问题 3:幻灯片数量
header: "Slides"
question: "How many slides?"
options:
- label: "{N} slides (Recommended)"
description: "Based on content length"
- label: "Fewer ({N-3} slides)"
description: "More condensed, less detail"
- label: "More ({N+3} slides)"
description: "More detailed breakdown"
问题 4:审阅大纲
header: "Outline"
question: "Review outline before generating prompts?"
options:
- label: "Yes, review outline (Recommended)"
description: "Review slide titles and structure"
- label: "No, skip outline review"
description: "Proceed directly to prompt generation"
问题 5:审阅提示词
header: "Prompts"
question: "Review prompts before generating images?"
options:
- label: "Yes, review prompts (Recommended)"
description: "Review image generation prompts"
- label: "No, skip prompt review"
description: "Proceed directly to image generation"
第 2 轮(仅当选择“自定义尺寸”时执行)
使用 AskUserQuestion 询问全部 4 个维度:
问题 1:纹理
header: "Texture"
question: "Which visual texture?"
options:
- label: "clean"
description: "Pure solid color, no texture"
- label: "grid"
description: "Subtle grid overlay, technical"
- label: "organic"
description: "Soft textures, hand-drawn feel"
- label: "pixel"
description: "Chunky pixels, 8-bit aesthetic"
(注意:“paper”可通过 Other 选择)
问题 2:氛围
header: "Mood"
question: "Which color mood?"
options:
- label: "professional"
description: "Cool-neutral, navy/gold"
- label: "warm"
description: "Earth tones, friendly"
- label: "cool"
description: "Blues, grays, analytical"
- label: "vibrant"
description: "High saturation, bold"
(注意:“dark”和“neutral”可通过 Other 选择)
问题 3:排版
header: "Typography"
question: "Which typography style?"
options:
- label: "geometric"
description: "Modern sans-serif, clean"
- label: "humanist"
description: "Friendly, readable"
- label: "handwritten"
description: "Marker/brush, organic"
- label: "editorial"
description: "Magazine style, dramatic"
(注意:“technical”可通过 Other 选择)
问题 4:密度
header: "Density"
question: "Information density?"
options:
- label: "balanced (Recommended)"
description: "2-3 key points per slide"
- label: "minimal"
description: "One focus point, maximum whitespace"
- label: "dense"
description: "Multiple data points, compact"
第 2 轮之后:将自定义维度保存为风格配置。
确认之后:
- 使用已确认的偏好更新
analysis.md - 保存问题 4 的
skip_outline_review标志 - 保存问题 5 的
skip_prompt_review标志 - → 步骤 3
步骤 3:生成大纲
使用步骤 2 中确认的风格创建大纲。
风格解析:
- 如果选择了预设 → 读取
references/styles/{preset}.md - 如果选择了自定义维度 → 从
references/dimensions/读取维度文件并组合
生成:
- 按照
references/outline-template.md构建结构 - 根据风格或维度构建 STYLE_INSTRUCTIONS
- 应用已确认的受众、语言和幻灯片数量
- 保存为
outline.md
生成之后:
- 如果使用
--outline-only,则在此处停止 - 如果
skip_outline_review为 true → 跳过步骤 4,前往步骤 5 - 如果
skip_outline_review为 false → 继续步骤 4
步骤 4:审核大纲(条件步骤)
如果用户在步骤 2 中选择了“No, skip outline review”,则跳过此步骤。
目的:在生成提示词前审核大纲结构。
语言:使用用户输入的语言或已保存的语言偏好。
显示:
- 幻灯片总数:N
- 风格:[预设名称或“自定义:纹理+氛围+排版+密度”]
- 逐张幻灯片摘要表:
| # | Title | Type | Layout |
|---|-------|------|--------|
| 1 | [title] | Cover | title-hero |
| 2 | [title] | Content | [layout] |
| 3 | [title] | Content | [layout] |
| ... | ... | ... | ... |
使用 AskUserQuestion:
header: "Confirm"
question: "Ready to generate prompts?"
options:
- label: "Yes, proceed (Recommended)"
description: "Generate image prompts"
- label: "Edit outline first"
description: "I'll modify outline.md before continuing"
- label: "Regenerate outline"
description: "Create new outline with different approach"
收到回复后:
- 如果选择“Edit outline first” → 告知用户编辑
outline.md,准备好后再次询问 - 如果选择“Regenerate outline” → 返回步骤 3
- 如果选择“Yes, proceed” → 继续步骤 5
步骤 5:生成提示词
- 读取
references/base-prompt.md - 对大纲中的每张幻灯片:
- 从大纲中提取 STYLE_INSTRUCTIONS(不要再次从风格文件中提取)
- 添加幻灯片专属内容
- 如果指定了
Layout:,则加入references/layouts.md中的布局指导
- 保存到
prompts/目录- 备份规则:如果提示词文件已存在,将其重命名为
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.md
- 备份规则:如果提示词文件已存在,将其重命名为
生成后:
- 如果指定了
--prompts-only,在此处停止并输出提示词摘要 - 如果
skip_prompt_review为 true → 跳过步骤 6,前往步骤 7 - 如果
skip_prompt_review为 false → 继续步骤 6
步骤 6:审核提示词(条件步骤)
如果用户在步骤 2 中选择了“No, skip prompt review”,则跳过此步骤。
目的:在生成图像前审核提示词。
语言:使用用户输入的语言或已保存的语言偏好。
显示:
- 提示词总数:N
- 风格:[预设名称或自定义维度]
- 提示词列表:
| # | Filename | Slide Title |
|---|----------|-------------|
| 1 | 01-slide-cover.md | [title] |
| 2 | 02-slide-xxx.md | [title] |
| ... | ... | ... |
- 提示词目录路径:
prompts/
使用 AskUserQuestion:
header: "Confirm"
question: "Ready to generate slide images?"
options:
- label: "Yes, proceed (Recommended)"
description: "Generate all slide images"
- label: "Edit prompts first"
description: "I'll modify prompts before continuing"
- label: "Regenerate prompts"
description: "Create new prompts with different approach"
收到回复后:
- 如果选择“Edit prompts first” → 告知用户先编辑提示词,准备好后再次询问
- 如果选择“Regenerate prompts” → 返回步骤 5
- 如果选择“Yes, proceed” → 继续步骤 7
步骤 7:生成图像
对于 --images-only:从此处开始,使用现有提示词。
对于 --regenerate N:仅重新生成指定的幻灯片。
标准流程:
- 选择可用的图像生成技能
- 生成会话 ID:
slides-{topic-slug}-{timestamp} - 对每张幻灯片:
- 备份规则:如果图像文件已存在,将其重命名为
NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.png - 使用相同的会话 ID 依次生成图像
- 备份规则:如果图像文件已存在,将其重命名为
- 报告进度:“已生成 X/N”(使用用户的语言)
- 失败时自动重试一次,然后再报告错误
步骤 8:合并为 PPTX 和 PDF
npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
步骤 9:输出摘要
语言:使用用户输入的语言或已保存的语言偏好。
Slide Deck Complete!
Topic: [topic]
Style: [preset name or custom dimensions]
Location: [directory path]
Slides: N total
- 01-slide-cover.png - Cover
- 02-slide-intro.png - Content
- ...
- {NN}-slide-back-cover.png - Back Cover
Outline: 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
生成大纲和提示词,不生成图像:
/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
重新生成指定的幻灯片:
# Single slide
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 3
# Multiple slides
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 2,5,8
流程:
- 读取指定幻灯片的现有提示词
- 仅重新生成这些幻灯片的图像
- 重新生成 PPTX/PDF
修改幻灯片
快速参考
| 操作 | 命令 | 手动步骤 |
|---|---|---|
| 编辑 | --regenerate N | 先更新提示词文件 → 重新生成图像 → 重新生成 PDF |
| 添加 | 手动 | 创建提示词 → 生成图像 → 重新编号后续幻灯片 → 更新大纲 → 重新生成 PDF |
| 删除 | 手动 | 移除文件 → 重新编号后续幻灯片 → 更新大纲 → 重新生成 PDF |
编辑单张幻灯片
- 先更新提示词文件:
prompts/NN-slide-{slug}.md - 运行:
/baoyu-slide-deck <dir> --regenerate N - 或手动重新生成图像和 PDF
重要:更新幻灯片时,务必先更新提示词文件(prompts/NN-slide-{slug}.md),然后再重新生成。这样可以确保更改有据可查且可复现。
添加新幻灯片
- 在指定位置创建提示词文件:
prompts/NN-slide-{new-slug}.md - 使用相同的会话 ID 生成图像
- 重新编号:后续文件的 NN 加 1(slug 保持不变)
- 更新
outline.md - 重新生成 PPTX/PDF
删除幻灯片
- 删除
NN-slide-{slug}.png和prompts/NN-slide-{slug}.md - 重新编号:后续文件的 NN 减 1(slug 保持不变)
- 更新
outline.md - 重新生成 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/<style>.md | 完整风格规范(旧版) |
references/config/preferences-schema.md | EXTEND.md 结构 |
备注
- 图像生成:每张幻灯片需 10-30 秒
- 生成失败时自动重试一次
- 对于敏感的公众人物,请使用风格化替代方案
- 通过会话 ID 保持风格一致
- 必须确认步骤 2——不得跳过(风格、受众、幻灯片、大纲审阅、提示词审阅)
- 步骤 4 为条件步骤——仅当用户在步骤 2 中要求审阅大纲时执行
- 步骤 6 为条件步骤——仅当用户在步骤 2 中要求审阅提示词时执行
扩展支持
通过 EXTEND.md 使用自定义配置。路径和支持的选项请参阅步骤 1.1。