SL

slides-to-presentation

Transforms Markdown-based Marp presentations into professional deliverable formats like PDF and PowerPoint.

Install

mkdir -p .claude/skills/slides-to-presentation && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17977" && unzip -o skill.zip -d .claude/skills/slides-to-presentation && rm skill.zip

Installs to .claude/skills/slides-to-presentation

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Convert Marp slide decks (slides.md) and speaker notes (speaker-notes.md) into presentation deliverables: PDF (via Marp CLI), PPTX with native tables and speaker notes (via python-pptx), HTML, or JSON + VBA macro for pixel-perfect PowerPoint. Handles SVG→PNG conversion for diagrams. Expects inputs from the design-to-slides skill.
331 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Convert Marp slide decks to PDF, HTML, or PPTX.
  • Preserve speaker notes in PPTX exports using python-pptx or VBA.
  • Handle SVG to PNG conversion for diagrams.
  • Generate native PowerPoint tables from Markdown tables.
  • Export structured JSON for VBA macro consumption.

How it works

The skill converts Marp Markdown files into various presentation formats using Marp CLI, python-pptx, or a VBA macro. It parses slide content and speaker notes to create structured output.

Inputs & outputs

You give it
Marp slide decks (slides.md) and speaker notes (speaker-notes.md)
You get back
PDF, HTML, or PPTX presentation files

When to use slides-to-presentation

  • Export slides to pdf
  • Convert slides to pptx
  • Generate presentation handouts
  • Include speaker notes in slides

About this skill

Slides & Notes → Presentation Exports

This skill converts existing Marp slide decks and speaker notes into distributable presentation formats:

OutputFormatSpeaker Notes?Tool
PDF handout.pdfNoMarp CLI
HTML slides.htmlNoMarp CLI
Basic PPTX.pptxNoMarp CLI
Full PPTX.pptxYespython-pptx (generate_pptx.py)
VBA PPTX.pptxYesJSON export + VBA macro

Prerequisite: The slides.md, speaker-notes.md, and diagrams/ directory must already exist (created by the design-to-slides skill).


Phase 1 — Export via Marp CLI (PDF / HTML / basic PPTX)

1.1 Prerequisites

Install Marp CLI globally:

npm install -g @marp-team/marp-cli

1.2 Export Commands

# PDF export (recommended for handouts)
marp --pdf --allow-local-files workshop/slides.md -o workshop/slides.pdf

# PPTX export (basic — no speaker notes)
marp --pptx --allow-local-files workshop/slides.md -o workshop/slides.pptx

# HTML export (interactive, keeps transitions)
marp --html --allow-local-files workshop/slides.md -o workshop/slides.html

Note: Marp's PPTX export does NOT include speaker notes. For PPTX with speaker notes, use Phase 2 (python-pptx) or Phase 3 (VBA).

1.3 Wrapper Script

A convenience wrapper is provided:

bash .github/skills/slides-to-presentation/scripts/convert_marp.sh workshop/slides.md --all

Flags: --pdf, --pptx, --html, --all.

1.4 Image Path Fix

Marp resolves image paths relative to the Markdown file. Use --allow-local-files to enable local file access. Ensure diagrams/ is next to the Markdown file.


Phase 2 — Generate PPTX with Speaker Notes (python-pptx)

2.1 Prerequisites

pip install python-pptx Pillow cairosvg

Or use the requirements file:

pip install -r .github/skills/slides-to-presentation/scripts/requirements.txt

2.2 Script Location

.github/skills/slides-to-presentation/scripts/generate_pptx.py

2.3 Usage

python .github/skills/slides-to-presentation/scripts/generate_pptx.py \
  --slides workshop/slides.md \
  --notes workshop/speaker-notes.md \
  --diagrams workshop/diagrams \
  --output workshop/presentation.pptx

2.4 What It Does

  1. Parses slides.md — splits on ---, extracts titles, content, images, code blocks, tables
  2. Parses speaker-notes.md — maps each ## Slide N section to the corresponding slide
  3. Creates PPTX with:
    • Title slides using the Title layout
    • Content slides with bullet points, bold formatting
    • Image slides with SVG→PNG conversion (via cairosvg)
    • Code slides with monospace formatting
    • Native table slides with styled header row, alternating shading
    • Speaker notes on every slide from the parsed notes
  4. Applies styling — heading colors, font sizes matching the Marp theme

2.5 Table Rendering

Markdown tables in slides.md are rendered as native PowerPoint table objects:

FeatureDetail
Header rowBlue background (#2E5090), white bold text
Data rowsAlternating light gray / white shading
FontsCalibri — 14pt header, 13pt body
Width85% of slide width, centered
FormattingMarkdown bold (**) and backticks stripped

2.6 Export JSON for VBA (Optional)

python .github/skills/slides-to-presentation/scripts/generate_pptx.py \
  --slides workshop/slides.md \
  --notes workshop/speaker-notes.md \
  --export-json workshop/slides_data.json

This exports a structured JSON file that the VBA macro can consume.


Phase 3 — Generate PowerPoint via VBA

3.1 When to Use VBA

Use VBA when:

  • You need pixel-perfect PowerPoint formatting
  • You want to use a corporate PowerPoint template (.potx)
  • The python-pptx output needs manual refinement as a starting point
  • You're on Windows with PowerPoint installed

3.2 Script Location

.github/skills/slides-to-presentation/scripts/GeneratePresentation.bas

3.3 Setup

  1. Generate the JSON data file (Phase 2.6):

    python .github/skills/slides-to-presentation/scripts/generate_pptx.py \
      --slides workshop/slides.md \
      --notes workshop/speaker-notes.md \
      --export-json workshop/slides_data.json
    
  2. Open PowerPoint on Windows

  3. Import the VBA macro:

    • Press Alt+F11 to open the VBA editor
    • Go to File → Import File...
    • Select GeneratePresentation.bas
  4. Run the macro:

    • Press Alt+F8
    • Select GeneratePresentation
    • Click Run
    • When prompted, select the slides_data.json file

3.4 What the VBA Macro Does

  1. Reads the JSON file containing slide data + speaker notes
  2. Creates a new PowerPoint presentation
  3. For each slide:
    • Selects the appropriate layout (Title, Content, Blank for images)
    • Populates the title and body text with formatting (bold, bullets)
    • Inserts images from the diagrams/ directory (SVG or PNG)
    • Adds speaker notes from the notes data
  4. Applies consistent font styling (Calibri, themed colors)
  5. Saves the presentation

3.5 VBA Customization Points

SettingLocation in VBADefault
Slide width/heightActivePresentation.PageSetupWidescreen 16:9
Title font & colorTITLE_FONT_* constantsCalibri 36pt #2E5090
Body font & sizeBODY_FONT_* constantsCalibri 20pt #333333
Template fileTEMPLATE_PATH constant(none — blank pres)
Image max dimensionsIMG_MAX_* constants9" × 5"

Phase 4 — Verification Checklist

PPTX (python-pptx)

  • All slides present with correct titles
  • Speaker notes visible in Notes pane for every slide
  • Tables render as native PPTX tables (not pipe-delimited text)
  • Images render correctly (no broken references)
  • Code blocks are readable with monospace font

PDF (Marp CLI)

  • All slides render without overflow
  • Diagrams are crisp (not pixelated)
  • Page count matches slide count

HTML (Marp CLI)

  • Slides advance correctly
  • Images load from diagrams/ directory

Output Directory Structure

workshop/
├── slides.md                 ← Input (from design-to-slides skill)
├── speaker-notes.md          ← Input (from design-to-slides skill)
├── diagrams/                 ← Input (from design-to-slides skill)
│   ├── 01-architecture.svg
│   ├── 01-architecture.excalidraw
│   └── ...
├── slides.pdf                ← PDF export (Marp CLI)
├── slides.html               ← HTML export (Marp CLI)
├── presentation.pptx         ← PPTX with speaker notes (python-pptx)
├── slides_data.json          ← JSON intermediate (for VBA)

Complete Workflow Summary

1. Ensure slides.md, speaker-notes.md, and diagrams/ exist
   └── Created by: design-to-slides skill
2. Export PDF via Marp CLI (Phase 1)
3. Export HTML via Marp CLI (Phase 1) — optional
4. Generate PPTX with speaker notes (Phase 2 — python-pptx)
   └── OR export JSON + run VBA macro (Phase 3)
5. Verify all outputs (Phase 4)

Scripts Reference

ScriptPurposeLocation
generate_pptx.pyParse Marp + notes → PPTX with speaker notes (or export JSON)scripts/generate_pptx.py
GeneratePresentation.basVBA macro — reads JSON, creates PowerPoint with notesscripts/GeneratePresentation.bas
convert_marp.shWrapper for Marp CLI exports (PDF, PPTX, HTML)scripts/convert_marp.sh
requirements.txtPython dependencies for generate_pptx.pyscripts/requirements.txt

When not to use it

  • When the `slides.md`, `speaker-notes.md`, and `diagrams/` directory do not exist.
  • When Marp CLI's basic PPTX export is sufficient and speaker notes are not needed.
  • When a corporate PowerPoint template is not required for pixel-perfect formatting.

Prerequisites

Marp CLIpython-pptxPillowcairosvg

Limitations

  • Marp CLI's PPTX export does not include speaker notes.
  • VBA generation requires Windows with PowerPoint installed.
  • The skill expects inputs from the `design-to-slides` skill.

How it compares

This skill automates the conversion of Marp decks and speaker notes into multiple presentation formats, including advanced PPTX features like native tables and speaker notes, which would otherwise require manual creation or separate tools f

Compared to similar skills

slides-to-presentation side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
slides-to-presentation (this skill)04moReviewIntermediate
create-section06moNo flagsBeginner
paper-2-web02moReviewIntermediate
baoyu-slide-deck03moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

create-section

JanDeDobbeleer

Use when creating a new section for the AI Workshop presentation. Guides through title slide setup, layout choices, and content gathering. Activates when user wants to add a new topic section to the slideshow.

00

paper-2-web

bg-szy

This skill should be used when converting academic papers into promotional and presentation formats including interactive websites (Paper2Web), presentation videos (Paper2Video), and conference posters (Paper2Poster). Use this skill for tasks involving paper dissemination, conference preparation, cr

00

baoyu-slide-deck

sayanget

Generate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck".

00

html-artifact

MVPavan

Create polished single-file HTML artifacts as an alternative to markdown for documents meant to be read by humans. Use whenever the user asks for an implementation plan, status report, post-mortem, architecture doc, scaling analysis, capacity dashboard, research explainer, concept walkthrough, PR wr

00

slidev

XIYO

Comprehensive guide for Slidev - a web-based presentation framework for developers. Covers Markdown syntax, layouts, components, animations, theming, and exporting. Use this skill when creating or working with developer presentations using Slidev.

371651

marp-slide

davila7

Create professional Marp presentation slides with 7 beautiful themes (default, minimal, colorful, dark, gradient, tech, business). Use when users request slide creation, presentations, or Marp documents. Supports custom themes, image layouts, and "make it look good" requests with automatic quality improvements.

418

Search skills

Search the agent skills registry