slides-generator
Create Hummingbot-branded PDF slides from markdown with Mermaid diagram support. Use for presentations, decks, and technical documentation with professional diagrams.
What this skill does
# 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:
```markdown
# Presentation Title
## 1. First Slide Title
Content for the first slide. Can include:
- Bullet points
- **Bold text** and *italic text*
- Code blocks
## 2. Second Slide Title
More content here.
## 3. Third Slide Title
And so on...
```
**Format Rules:**
- `# Title` = Presentation title (optional, becomes title slide)
- `## N. Slide Title` = 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:
```
๐ Slide Outline:
1. First Slide Title
2. Second Slide Title
3. Third Slide Title
...
Total: X slides
Please confirm to proceed with PDF generation, or provide edits.
```
Wait for user confirmation before proceeding.
### Step 3: Generate PDF
Run the generation script:
```bash
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \
--input "<markdown_file_or_content>" \
--output "<output_pdf_path>"
```
Or if the user provided inline content, save it to a temp file first:
```bash
# Save content to temp file
cat > /tmp/slides_content.md << 'SLIDES_EOF'
<markdown_content_here>
SLIDES_EOF
# Generate 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
```
### 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
2. Ask the user what changes they want:
- Edit specific slide content
- Add new slides
- Remove slides
- Reorder slides
3. Apply changes to the markdown
4. Regenerate the PDF
Use the `--edit` flag to update specific slides without regenerating all:
```bash
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/slides-generator/scripts/generate_slides.sh) \
--input "<updated_markdown>" \
--output "<same_pdf_path>" \
--edit
```
## 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:
```markdown
mermaid: A flowchart showing User Interface connecting to Condor and MCP Agents,
both connecting to Hummingbot API (highlighted), then to Client, then to Gateway
```
### Translation to Mermaid
Convert the description to proper Mermaid syntax:
```markdown
\`\`\`mermaid
flowchart TB
A[User Interface] --> B[Condor]
A --> C[MCP Agents]
B --> D[Hummingbot API]
C --> D
D --> E[Hummingbot Client]
E --> F[Gateway]
style D fill:#00D084,color:#fff
\`\`\`
```
### Diagram Types
- `flowchart TD` - Top-down flowchart
- `flowchart LR` - Left-right flowchart
- `sequenceDiagram` - API and interaction flows
- `classDiagram` - Object-oriented design
- `erDiagram` - Database schemas
### Highlighting
Use `style NodeName fill:#00D084,color:#fff` for Hummingbot green highlighting.
### Requirements
Mermaid diagrams require the Mermaid CLI:
```bash
npm install -g @mermaid-js/mermaid-cli
```
## Code Blocks
Use regular `\`\`\`` code blocks for ASCII art, code snippets, or preformatted text:
```markdown
\`\`\`
Price
^
| [BUY] --- Level 3
| [BUY] --- Level 2
| [BUY] --- Level 1
+-------------------> Time
\`\`\`
```
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
```markdown
## 4. How It Works
Key features:
- Automated order placement
- Dynamic position management
- Risk-controlled execution
- Real-time monitoring
mermaid: flowchart showing Market Data to Strategy to Orders
```
After translation:
```markdown
## 4. How It Works
Key features:
- Automated order placement
- Dynamic position management
- Risk-controlled execution
- Real-time monitoring
\`\`\`mermaid
flowchart TD
A[Market Data] --> B[Strategy]
B --> C[Orders]
style B fill:#00D084,color:#fff
\`\`\`
```
## Example Markdown
```markdown
# Q4 Product Update
## 1. Overview
Today we'll cover:
- Product milestones
- Key metrics
- Roadmap preview
## 2. Architecture
Our system components:
- User-facing interfaces
- Core API layer
- Exchange connectivity
mermaid: flowchart showing UI to API (highlighted) to Gateway
## 3. Key Metrics
| Metric | Q3 | Q4 | Change |
|--------|----|----|--------|
| Users | 10K | 15K | +50% |
| Revenue | $100K | $150K | +50% |
## 4. Q1 Roadmap
1. Mobile app launch
2. Enterprise tier
3. International expansion
## 5. Questions?
Thank you!
Contact: [email protected]
```
After translating `mermaid:` descriptions:
```markdown
## 2. Architecture
Our system components:
- User-facing interfaces
- Core API layer
- Exchange connectivity
\`\`\`mermaid
flowchart TD
A[UI] --> B[API]
B --> C[Gateway]
style B fill:#00D084,color:#fff
\`\`\`
```
## 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 |
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing โ use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.