baoyu-slide-deck by azure12355/weilan-skills
npx skills add https://github.com/azure12355/weilan-skills --skill baoyu-slide-deck将内容转换为专业的幻灯片图像。
/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 # 然后粘贴内容
代理执行说明 :
SKILL_DIR${SKILL_DIR}/scripts/<script-name>.ts| 脚本 | 用途 |
|---|---|
scripts/merge-to-pptx.ts |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 将幻灯片合并到 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 个单词,短横线连接)。示例:"Introduction to Machine Learning" → intro-machine-learning
冲突处理 : 参见步骤 1.3 了解现有内容检测和用户选项。
检测优先级 :
--lang 标志(显式)language 设置规则 : 所有响应都使用用户的首选语言:
技术术语(风格名称、文件路径、代码)保持英文。
复制此清单并在完成项目时勾选:
幻灯片进度:
- [ ] 步骤 1:设置与分析
- [ ] 1.1 加载偏好设置
- [ ] 1.2 分析内容
- [ ] 1.3 检查现有内容 ⚠️ 必需
- [ ] 步骤 2:确认 ⚠️ 必需(第 1 轮,可选第 2 轮)
- [ ] 步骤 3:生成大纲
- [ ] 步骤 4:审阅大纲(条件性)
- [ ] 步骤 5:生成提示词
- [ ] 步骤 6:审阅提示词(条件性)
- [ ] 步骤 7:生成图像
- [ ] 步骤 8:合并到 PPTX/PDF
- [ ] 步骤 9:输出摘要
输入 → 偏好设置 → 分析 → [检查现有内容?] → 确认(1-2 轮) → 大纲 → [审阅大纲?] → 提示词 → [审阅提示词?] → 图像 → 合并 → 完成
1.1 加载偏好设置 (EXTEND.md)
使用 Bash 检查 EXTEND.md 是否存在(优先级顺序):
# 首先检查项目级别
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 支持 : 首选风格 | 自定义维度 | 默认受众 | 语言偏好 | 审阅偏好
模式:references/config/preferences-schema.md
1.2 分析内容
source.md)
source.md 已存在,重命名为 source-backup-YYYYMMDD-HHMMSS.mdreferences/analysis-framework.md 进行内容分析1.3 检查现有内容 ⚠️ 必需
在继续步骤 2 之前必须执行。
使用 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,包含:
两轮确认 : 第 1 轮始终进行,第 2 轮仅在选择了"自定义维度"时进行。
语言 : 使用用户的输入语言或保存的语言偏好。
显示摘要 :
使用 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: "直接进行图像生成"
使用 AskUserQuestion 回答所有 4 个维度:
问题 1:纹理
header: "纹理"
question: "使用哪种视觉纹理?"
options:
- label: "简洁"
description: "纯色,无纹理"
- label: "网格"
description: "微妙的网格覆盖,技术感"
- label: "有机感"
description: "柔和纹理,手绘感"
- label: "像素风"
description: "块状像素,8 位美学"
(注意:"纸张感"可通过"其他"选项获得)
问题 2:氛围
header: "氛围"
question: "使用哪种色彩氛围?"
options:
- label: "专业"
description: "冷中性,海军蓝/金色"
- label: "暖色调"
description: "大地色调,友好"
- label: "冷色调"
description: "蓝色、灰色,分析感"
- label: "鲜艳"
description: "高饱和度,大胆"
(注意:"暗色"、"中性"可通过"其他"选项获得)
问题 3:排版
header: "排版"
question: "使用哪种排版风格?"
options:
- label: "几何感"
description: "现代无衬线字体,简洁"
- label: "人文感"
description: "友好,易读"
- label: "手写体"
description: "马克笔/画笔,有机感"
- label: "编辑感"
description: "杂志风格,戏剧性"
(注意:"技术感"可通过"其他"选项获得)
问题 4:密度
header: "密度"
question: "信息密度如何?"
options:
- label: "平衡 (推荐)"
description: "每张幻灯片 2-3 个关键点"
- label: "极简"
description: "一个焦点,最大留白"
- label: "密集"
description: "多个数据点,紧凑"
第 2 轮之后 : 将自定义维度存储为风格配置。
确认之后 :
analysis.mdskip_outline_review 标志skip_prompt_review 标志使用步骤 2 中确认的风格创建大纲。
风格解析 :
references/styles/{preset}.mdreferences/dimensions/ 读取维度文件并组合生成 :
references/outline-template.md 的结构outline.md生成之后 :
--outline-only,在此停止skip_outline_review 为 true → 跳过步骤 4,转到步骤 5skip_outline_review 为 false → 继续步骤 4跳过此步骤,如果用户在步骤 2 中选择了"否,跳过大纲审阅"。
目的 : 在生成提示词之前审阅大纲结构。
语言 : 使用用户的输入语言或保存的语言偏好。
显示 :
总幻灯片数:N
风格:[预设名称或"自定义:纹理+氛围+排版+密度"]
逐张幻灯片摘要表格:
| # | 标题 | 类型 | 布局 |
|---|---|---|---|
| 1 | [标题] | 封面 | title-hero |
| 2 | [标题] | 内容 | [布局] |
| 3 | [标题] | 内容 | [布局] |
| ... | ... | ... | ... |
使用 AskUserQuestion :
header: "确认"
question: "准备好生成提示词了吗?"
options:
- label: "是,继续 (推荐)"
description: "生成图像提示词"
- label: "先编辑大纲"
description: "在继续之前我将修改 outline.md"
- label: "重新生成大纲"
description: "使用不同的方法创建新大纲"
响应之后 :
outline.md,准备好时再次询问references/base-prompt.mdLayout:,则包含来自 references/layouts.md 的布局指导prompts/ 目录
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.md生成之后 :
--prompts-only,在此停止并输出提示词摘要skip_prompt_review 为 true → 跳过步骤 6,转到步骤 7skip_prompt_review 为 false → 继续步骤 6跳过此步骤,如果用户在步骤 2 中选择了"否,跳过提示词审阅"。
目的 : 在生成图像之前审阅提示词。
语言 : 使用用户的输入语言或保存的语言偏好。
显示 :
总提示词数:N
风格:[预设名称或自定义维度]
提示词列表:
| # | 文件名 | 幻灯片标题 |
|---|---|---|
| 1 | 01-slide-cover.md | [标题] |
| 2 | 02-slide-xxx.md | [标题] |
| ... | ... | ... |
提示词目录路径:prompts/
使用 AskUserQuestion :
header: "确认"
question: "准备好生成幻灯片图像了吗?"
options:
- label: "是,继续 (推荐)"
description: "生成所有幻灯片图像"
- label: "先编辑提示词"
description: "在继续之前我将修改提示词"
- label: "重新生成提示词"
description: "使用不同的方法创建新提示词"
响应之后 :
对于--images-only : 从此处开始,使用现有提示词。
对于--regenerate N : 仅重新生成指定的幻灯片。
标准流程 :
slides-{topic-slug}-{timestamp}NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.pngnpx -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>
语言 : 使用用户的输入语言或保存的语言偏好。
幻灯片完成!
主题: [主题]
风格: [预设名称或自定义维度]
位置: [目录路径]
幻灯片: 总计 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生成大纲和提示词,不生成图像:
/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
流程:
| 操作 | 命令 | 手动步骤 |
|---|---|---|
| 编辑 | --regenerate N | 首先更新提示词文件 → 重新生成图像 → 重新生成 PDF |
| 添加 | 手动 | 创建提示词 → 生成图像 → 重新编号后续文件 → 更新大纲 → 重新生成 PDF |
| 删除 | 手动 | 删除文件 → 重新编号后续文件 → 更新大纲 → 重新生成 PDF |
prompts/NN-slide-{slug}.md/baoyu-slide-deck <dir> --regenerate N重要 : 更新幻灯片时,务必首先更新提示词文件 (prompts/NN-slide-{slug}.md)。这确保更改被记录且可重现。
prompts/NN-slide-{new-slug}.mdoutline.mdNN-slide-{slug}.png 和 prompts/NN-slide-{slug}.mdoutline.md格式:NN-slide-[slug].png
NN: 两位数字序列(01, 02, ...)slug: 来自内容的短横线连接(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 结构 |
通过 EXTEND.md 进行自定义配置。参见步骤 1.1了解路径和支持的选项。
每周安装
1
仓库
GitHub 星标
1
首次出现
1 天前
安全审计
安装于
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
Transform content into professional slide deck images.
/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 Execution Instructions :
SKILL_DIR${SKILL_DIR}/scripts/<script-name>.ts| Script | Purpose |
|---|---|
scripts/merge-to-pptx.ts | Merge slides into PowerPoint |
scripts/merge-to-pdf.ts | Merge slides into PDF |
| Option | Description |
|---|---|
--style <name> | Visual style: preset name, custom, or custom style name |
--audience <type> | Target: beginners, intermediate, experts, executives, general |
--lang <code> | Output language (en, zh, ja, etc.) |
--slides <number> | Target slide count (8-25 recommended, max 30) |
--outline-only | Generate outline only, skip image generation |
Slide Count by Content Length :
| Content | Slides |
|---|---|
| < 1000 words | 5-10 |
| 1000-3000 words | 10-18 |
| 3000-5000 words | 15-25 |
5000 words | 20-30 (consider splitting)
| Preset | Dimensions | Best For |
|---|---|---|
blueprint (Default) | grid + cool + technical + balanced | Architecture, system design |
chalkboard | organic + warm + handwritten + balanced | Education, tutorials |
corporate | clean + professional + geometric + balanced | Investor decks, proposals |
minimal | clean + neutral + geometric + minimal | Executive briefings |
sketch-notes |
| Dimension | Options | Description |
|---|---|---|
| Texture | clean, grid, organic, pixel, paper | Visual texture and background treatment |
| Mood | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style |
| Typography | geometric, humanist, handwritten, editorial, technical | Headline and body text styling |
| Density | minimal, balanced, dense | Information density per slide |
Full specs: references/dimensions/*.md
| Content Signals | Preset |
|---|---|
| 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 |
Decks designed for reading and sharing , not live presentation:
See references/design-guidelines.md for:
See references/layouts.md for layout options.
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 : Extract topic (2-4 words, kebab-case). Example: "Introduction to Machine Learning" → intro-machine-learning
Conflict Handling : See Step 1.3 for existing content detection and user options.
Detection Priority :
--lang flag (explicit)language settingRule : ALL responses use user's preferred language:
Technical terms (style names, file paths, code) remain in English.
Copy this checklist and check off items as you complete them:
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 Load Preferences (EXTEND.md)
Use Bash to check EXTEND.md existence (priority order):
# 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"
┌──────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-slide-deck/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md │ User home │ └──────────────────────────────────────────────────┴───────────────────┘
When EXTEND.md Found → Read, parse, output summary to user :
📋 Loaded preferences from [full path]
├─ Style: [preset/custom name]
├─ Audience: [audience or "auto-detect"]
├─ Language: [language or "auto-detect"]
└─ Review: [enabled/disabled]
When EXTEND.md Not Found → First-time setup using AskUserQuestion or proceed with defaults.
EXTEND.md Supports : Preferred style | Custom dimensions | Default audience | Language preference | Review preference
Schema: references/config/preferences-schema.md
1.2 Analyze Content
source.md)
source.md exists, rename to source-backup-YYYYMMDD-HHMMSS.mdreferences/analysis-framework.md for content analysis1.3 Check Existing Content ⚠️ REQUIRED
MUST execute before proceeding to Step 2.
Use Bash to check if output directory exists:
test -d "slide-deck/{topic-slug}" && echo "exists"
If directory exists , use 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"
Save toanalysis.md with:
Two-round confirmation : Round 1 always, Round 2 only if "Custom dimensions" selected.
Language : Use user's input language or saved language preference.
Display summary :
Use AskUserQuestion for all 5 questions:
Question 1: Style
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"
Question 2: Audience
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"
Question 3: Slide Count
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"
Question 4: Review Outline
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"
Question 5: Review Prompts
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"
Use AskUserQuestion for all 4 dimensions:
Question 1: Texture
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"
(Note: "paper" available via Other)
Question 2: Mood
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"
(Note: "dark", "neutral" available via Other)
Question 3: Typography
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"
(Note: "technical" available via Other)
Question 4: Density
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"
After Round 2 : Store custom dimensions as the style configuration.
After Confirmation :
analysis.md with confirmed preferencesskip_outline_review flag from Question 4skip_prompt_review flag from Question 5Create outline using the confirmed style from Step 2.
Style Resolution :
references/styles/{preset}.mdreferences/dimensions/ and combineGenerate :
references/outline-template.md for structureoutline.mdAfter generation :
--outline-only, stop hereskip_outline_review is true → Skip Step 4, go to Step 5skip_outline_review is false → Continue to Step 4Skip this step if user selected "No, skip outline review" in Step 2.
Purpose : Review outline structure before prompt generation.
Language : Use user's input language or saved language preference.
Display :
Total slides: N
Style: [preset name or "custom: texture+mood+typography+density"]
Slide-by-slide summary table:
| # | Title | Type | Layout |
|---|---|---|---|
| 1 | [title] | Cover | title-hero |
| 2 | [title] | Content | [layout] |
| 3 | [title] | Content | [layout] |
| ... | ... | ... | ... |
Use 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"
After response :
outline.md, ask again when readyreferences/base-prompt.mdLayout: specified, include layout guidance from references/layouts.mdprompts/ directory
prompts/NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.mdAfter generation :
--prompts-only, stop here and output prompt summaryskip_prompt_review is true → Skip Step 6, go to Step 7skip_prompt_review is false → Continue to Step 6Skip this step if user selected "No, skip prompt review" in Step 2.
Purpose : Review prompts before image generation.
Language : Use user's input language or saved language preference.
Display :
Total prompts: N
Style: [preset name or custom dimensions]
Prompt list:
| # | Filename | Slide Title |
|---|---|---|
| 1 | 01-slide-cover.md | [title] |
| 2 | 02-slide-xxx.md | [title] |
| ... | ... | ... |
Path to prompts directory: prompts/
Use 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"
After response :
For--images-only: Start here with existing prompts.
For--regenerate N: Only regenerate specified slide(s).
Standard flow :
slides-{topic-slug}-{timestamp}NN-slide-{slug}-backup-YYYYMMDD-HHMMSS.pngnpx -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>
Language : Use user's input language or saved language preference.
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
| Option | Workflow |
|---|---|
--outline-only | Steps 1-3 only (stop after outline) |
--prompts-only | Steps 1-5 (generate prompts, skip images) |
--images-only | Skip to Step 7 (requires existing prompts/) |
--regenerate N | Regenerate specific slide(s) only |
--prompts-onlyGenerate outline and prompts without images:
/baoyu-slide-deck content.md --prompts-only
Output: outline.md + prompts/*.md ready for review/editing.
--images-onlyGenerate images from existing prompts (starts at Step 7):
/baoyu-slide-deck slide-deck/topic-slug/ --images-only
Prerequisites:
prompts/ directory with slide prompt filesoutline.md with style information--regenerateRegenerate specific slides:
# Single slide
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 3
# Multiple slides
/baoyu-slide-deck slide-deck/topic-slug/ --regenerate 2,5,8
Flow:
| Action | Command | Manual Steps |
|---|---|---|
| Edit | --regenerate N | Update prompt file FIRST → Regenerate image → Regenerate PDF |
| Add | Manual | Create prompt → Generate image → Renumber subsequent → Update outline → Regenerate PDF |
| Delete | Manual | Remove files → Renumber subsequent → Update outline → Regenerate PDF |
prompts/NN-slide-{slug}.md/baoyu-slide-deck <dir> --regenerate NIMPORTANT : When updating slides, ALWAYS update the prompt file (prompts/NN-slide-{slug}.md) FIRST before regenerating. This ensures changes are documented and reproducible.
prompts/NN-slide-{new-slug}.mdoutline.mdNN-slide-{slug}.png and prompts/NN-slide-{slug}.mdoutline.mdFormat: NN-slide-[slug].png
NN: Two-digit sequence (01, 02, ...)slug: Kebab-case from content (2-5 words, unique)Renumbering Rule : Only NN changes, slugs remain unchanged.
See references/modification-guide.md for complete details.
| File | Content |
|---|---|
references/analysis-framework.md | Content analysis for presentations |
references/outline-template.md | Outline structure and format |
references/modification-guide.md | Edit, add, delete slide workflows |
references/content-rules.md | Content and style guidelines |
references/design-guidelines.md | Audience, typography, colors, visual elements |
references/layouts.md |
Custom configurations via EXTEND.md. See Step 1.1 for paths and supported options.
Weekly Installs
1
Repository
GitHub Stars
1
First Seen
1 day ago
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
60,400 周安装
--prompts-only| Generate outline + prompts, skip images |
--images-only | Generate images from existing prompts directory |
--regenerate <N> | Regenerate specific slide(s): --regenerate 3 or --regenerate 2,5,8 |
| organic + warm + handwritten + balanced |
| Educational, tutorials |
watercolor | organic + warm + humanist + minimal | Lifestyle, wellness |
dark-atmospheric | clean + dark + editorial + balanced | Entertainment, gaming |
notion | clean + neutral + geometric + dense | Product demos, SaaS |
bold-editorial | clean + vibrant + editorial + balanced | Product launches, keynotes |
editorial-infographic | clean + cool + editorial + dense | Tech explainers, research |
fantasy-animation | organic + vibrant + handwritten + minimal | Educational storytelling |
intuition-machine | clean + cool + technical + dense | Technical docs, academic |
pixel-art | pixel + vibrant + technical + balanced | Gaming, developer talks |
scientific | clean + cool + technical + dense | Biology, chemistry, medical |
vector-illustration | clean + vibrant + humanist + balanced | Creative, children's content |
vintage | paper + warm + editorial + balanced | Historical, heritage |
| 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 |
| Default | blueprint |
| Layout options and selection tips |
references/base-prompt.md | Base prompt for image generation |
references/dimensions/*.md | Dimension specifications (texture, mood, typography, density) |
references/dimensions/presets.md | Preset → dimension mapping |
references/styles/<style>.md | Full style specifications (legacy) |
references/config/preferences-schema.md | EXTEND.md structure |