slides-generator
Create Hummingbot-branded presentation slides in PDF format from markdown content. Features two-column layouts and Mermaid diagram rendering for technical architecture and flowcharts.
Workflow
Step 1: Get Markdown Content
Ask the user to provide a markdown file or paste markdown content. The content should follow this format:
CODEBLOCK0
Format Rules:
- -
# Title = Presentation title (optional, becomes title slide) - INLINECODE1 = New slide (N is slide number)
- Content under each
## heading becomes slide content - Supports markdown formatting: lists, bold, italic, code blocks, links
Step 2: Parse and Confirm
Before generating the PDF, parse the markdown and show the user a summary:
CODEBLOCK1
Wait for user confirmation before proceeding.
Step 3: Generate PDF
Run the generation script:
CODEBLOCK2
Or if the user provided inline content, save it to a temp file first:
CODEBLOCK3
Step 4: Deliver Result
After generation, tell the user:
- - The PDF file location
- How many slides were generated
- Offer to open/view the PDF if desired
Editing Existing Slides
If the user wants to edit slides from a previously generated PDF:
- 1. Read the original markdown (if available) or view the PDF to understand current content
- Ask the user what changes they want:
- Edit specific slide content
- Add new slides
- Remove slides
- Reorder slides
- 3. Apply changes to the markdown
- Regenerate the PDF
Use the --edit flag to update specific slides without regenerating all:
CODEBLOCK4
Diagrams
Users can describe diagrams in natural language using mermaid: syntax. You must translate these descriptions to Mermaid code before generating the PDF.
User Input Format
Users write descriptions like:
CODEBLOCK5
Translation to Mermaid
Convert the description to proper Mermaid syntax:
CODEBLOCK6
Diagram Types
- -
flowchart TD - Top-down flowchart - INLINECODE6 - Left-right flowchart
- INLINECODE7 - API and interaction flows
- INLINECODE8 - Object-oriented design
- INLINECODE9 - Database schemas
Highlighting
Use style NodeName fill:#00D084,color:#fff for Hummingbot green highlighting.
Requirements
Mermaid diagrams require the Mermaid CLI:
CODEBLOCK7
Code Blocks
Use regular \\\ code blocks for ASCII art, code snippets, or preformatted text:
CODEBLOCK8
Code blocks render with monospace font on a gray background.
## Two-Column Layout
When a slide has both bullet points AND a diagram, it automatically renders in two columns:
- Left column: Text content
- Right column: Diagram
CODEBLOCK9
After translation:
CODEBLOCK10
## Example Markdown
CODEBLOCK11
After translating mermaid: descriptions:
CODEBLOCK12
## Dependencies
The script will check for and install if needed:
- Python 3
- fpdf2 Python package (for PDF generation)
## Troubleshooting
| Issue | Solution |
|-------|----------|
| "Python not found" | Install Python 3: brew install python3 (macOS) or apt install python3 (Linux) |
| "fpdf2 not installed" | Run: pip3 install fpdf2 |
| "Permission denied" | Check write permissions for output directory |
| "Empty PDF" | Verify markdown format follows the ## N. Title pattern |
## Scripts
| Script | Purpose |
|--------|---------|
| generate_slides.sh` | Main PDF generation script |
slides-generator
根据Markdown内容创建带有Hummingbot品牌标识的PDF格式演示幻灯片。支持双栏布局和Mermaid图表渲染,适用于技术架构图和流程图。
工作流程
步骤1:获取Markdown内容
请用户提供Markdown文件或粘贴Markdown内容。内容需遵循以下格式:
markdown
演示标题
1. 第一张幻灯片标题
第一张幻灯片的内容。可包含:
2. 第二张幻灯片标题
此处填写更多内容。
3. 第三张幻灯片标题
以此类推...
格式规则:
- - # 标题 = 演示标题(可选,将生成标题幻灯片)
- ## N. 幻灯片标题 = 新幻灯片(N为幻灯片编号)
- 每个##标题下的内容成为幻灯片内容
- 支持Markdown格式:列表、粗体、斜体、代码块、链接
步骤2:解析并确认
在生成PDF前,解析Markdown并向用户展示摘要:
📊 幻灯片大纲:
- 1. 第一张幻灯片标题
- 第二张幻灯片标题
- 第三张幻灯片标题
...
总计:X张幻灯片
请确认继续生成PDF,或提供修改意见。
等待用户确认后再继续。
步骤3:生成PDF
运行生成脚本:
bash
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \
--input \
--output <输出PDF路径>
如果用户提供的是内联内容,先保存到临时文件:
bash
将内容保存到临时文件
cat > /tmp/slides
content.md << SLIDESEOF
<此处填写Markdown内容>
SLIDES_EOF
生成PDF
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \
--input /tmp/slides_content.md \
--output ~/slides_output.pdf
步骤4:交付结果
生成完成后,告知用户:
- - PDF文件位置
- 生成的幻灯片数量
- 如需可提供打开/查看PDF的选项
编辑现有幻灯片
如果用户希望编辑之前生成的PDF中的幻灯片:
- 1. 读取原始Markdown(如有)或查看PDF以了解当前内容
- 询问用户需要哪些修改:
- 编辑特定幻灯片内容
- 添加新幻灯片
- 删除幻灯片
- 重新排列幻灯片顺序
- 3. 对Markdown应用修改
- 重新生成PDF
使用--edit标志可更新特定幻灯片而无需重新生成全部:
bash
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \
--input <更新后的Markdown> \
--output <相同PDF路径> \
--edit
图表
用户可以使用mermaid:语法以自然语言描述图表。在生成PDF前,您必须将这些描述转换为Mermaid代码。
用户输入格式
用户编写描述如下:
markdown
mermaid: 一个流程图,显示用户界面连接到Condor和MCP代理,
两者都连接到Hummingbot API(高亮显示),然后连接到客户端,最后连接到网关
转换为Mermaid
将描述转换为正确的Mermaid语法:
markdown
\\\mermaid
flowchart TB
A[用户界面] --> B[Condor]
A --> C[MCP代理]
B --> D[Hummingbot API]
C --> D
D --> E[Hummingbot客户端]
E --> F[网关]
style D fill:#00D084,color:#fff
\\\
图表类型
- - flowchart TD - 自上而下流程图
- flowchart LR - 从左到右流程图
- sequenceDiagram - API和交互流程
- classDiagram - 面向对象设计
- erDiagram - 数据库模式
高亮显示
使用style 节点名称 fill:#00D084,color:#fff实现Hummingbot绿色高亮。
要求
Mermaid图表需要Mermaid CLI:
bash
npm install -g @mermaid-js/mermaid-cli
代码块
使用常规的\\\代码块表示ASCII艺术、代码片段或预格式化文本:
markdown
\\\
价格
^
| [买入] --- 第3层
| [买入] --- 第2层
| [买入] --- 第1层
+-------------------> 时间
\\\
代码块将以等宽字体在灰色背景上渲染。
双栏布局
当幻灯片同时包含项目符号和图表时,自动渲染为双栏布局:
markdown
4. 工作原理
主要功能:
- - 自动化订单下达
- 动态仓位管理
- 风险控制执行
- 实时监控
mermaid: 流程图显示市场数据到策略再到订单
转换后:
markdown
4. 工作原理
主要功能:
- - 自动化订单下达
- 动态仓位管理
- 风险控制执行
- 实时监控
\\\mermaid
flowchart TD
A[市场数据] --> B[策略]
B --> C[订单]
style B fill:#00D084,color:#fff
\\\
Markdown示例
markdown
第四季度产品更新
1. 概述
今天我们将介绍:
2. 架构
我们的系统组件:
mermaid: 流程图显示用户界面到API(高亮)再到网关
3. 关键指标
| 指标 | 第三季度 | 第四季度 | 变化 |
|---|
| 用户数 | 10K | 15K | +50% |
| 收入 |
$100K | $150K | +50% |
4. 第一季度路线图
- 1. 移动应用上线
- 企业版
- 国际扩张
5. 有问题吗?
谢谢!
联系方式:team@example.com
转换mermaid:描述后:
markdown
2. 架构
我们的系统组件:
\\\mermaid
flowchart TD
A[用户界面] --> B[API]
B --> C[网关]
style B fill:#00D084,color:#fff
\\\
依赖项
脚本将检查并根据需要安装:
- - Python 3
- fpdf2 Python包(用于PDF生成)
故障排除
| 问题 | 解决方案 |
|---|
| 未找到Python | 安装Python 3:brew install python3(macOS)或apt install python3(Linux) |
| 未安装fpdf2 |
运行:pip3 install fpdf2 |
| 权限被拒绝 | 检查输出目录的写入权限 |
| PDF为空 | 验证Markdown格式是否遵循## N. 标题模式 |
脚本
| 脚本 | 用途 |
|---|
| generate_slides.sh | 主PDF生成脚本 |