SuperAPI AI Directory

md-to-modern-pptx

Office & productivity

View repository

Updated 10-24 16:22

About this skill

Md → Modern PPTX

Quick Start (Recommended)

Goal: use theme-factory to pick a theme + use PptxGenJS for stable PPTX generation, then use markitdown for content QA(optionally also do visual QA).

1) Pick a theme (theme-factory)

  • Theme preview: open ~/.agents/skills/theme-factory/theme-showcase.pdf
  • theme slug (corresponds to ~/.agents/skills/theme-factory/themes/*.md):
    • ocean-depths
    • sunset-boulevard
    • forest-canopy
    • modern-minimalist
    • golden-hour(used in this example)
    • arctic-frost
    • desert-rose
    • tech-innovation
    • botanical-garden
    • midnight-galaxy

2) Install dependencies (once)

Run in the project directory where you want to generate the PPTX:

npm i pptxgenjs
python -m pip install "markitdown[pptx]"

3) Generate the PPTX

Use the script bundled with this skill (designed for "Deep Research style Markdown"):

node .\skills\md-to-modern-pptx\scripts\md-deepresearch-to-pptx.js --in .\YOUR.md --out .\YOUR.pptx --theme golden-hour

If your Markdown does not match the Deep Research structure: first organize it into the structure below (see references/deepresearch-md-contract.md), then generate.

Gemini illustrations (optional, but they noticeably make it look more "premium")

Your idea is feasible: use gemini-3-pro-image-preview text-to-image models like this tosome pagesgenerate illustrations, then insert the images when generating the PPTX.

Illustration strategy (default recommendation)

  • Only add illustrations to Detailed Analysis pages: 1 per subsection (max 5), best value for effort.
  • Title/Executive Summary/Key Findings/Consensus/Debate/Sources: no illustrations by default (avoid noise and style drift).

Illustration prompt coordination (Prompt Bank)

A single image prompt consists of 4 parts (keep them consistent to avoid style jumping from page to page):

  1. Semantics: this page's subsection title + key context (1–2 sentences)
  2. Visual style:modern editorial illustration / flat vector / subtle grain / clean shapes
  3. Theme constraints: follow the deck theme's color tendencies (e.g., golden-hour is warm mustard + terracotta + beige)
  4. Hard constraints:no text, no logos, no watermarks, no brand marks

This skill's script automatically generates the plan according to the above principles (you can also edit it by hand).

1) Prepare .env(do not commit sensitive information)

Two recommended placement options (choose one):

  • Global (recommended):~/.agents/skills/md-to-modern-pptx/.env(configure once, reusable across all projects; the script also supports some "nested install" paths)
  • Project-level:<项目根目录>/.env(only applies to the current project; the script also reads it automatically)

.env Content reference skills/md-to-modern-pptx/.env.example:

CHERRY_BASE_URL=https://your-gateway.example.com
CHERRY_API_KEY=your_key_here
CHERRY_MODEL=gemini-3-pro-image-preview

Notes:

  • This is designed for the "relay station/gateway" base_url + key approach; the script prioritizes reading CHERRY_*, and is compatible with the older GEMINI_* naming.
  • For gemini-3-pro-image-preview Gemini image-generation models like this: the script defaults to POST /v1beta/models/<model>:generateContent(responseModalities=["IMAGE"])。
  • If your gateway does not support Gemini's native path, it falls back to the OpenAI-like POST /v1/images/generations(some relay stations use task_id polling).

2) Generate the illustration plan (plan.json)

python .\skills\md-to-modern-pptx\scripts\gemini_image_pack.py make-plan --in .\YOUR.md --theme golden-hour --out .\images.plan.json

This by default generates prompts for up to 5 images for analysis pages (starting from page 5).

3) Call Gemini to generate images

python .\skills\md-to-modern-pptx\scripts\gemini_image_pack.py generate --plan .\images.plan.json --out-dir .\images

If the error contains something like:

  • "No available channel (distributor)" / model_not_found
  • “not supported model for image generation”

This usually means: your relay station account/group has not enabled the IMAGE output capabilityfor this model; you need to enable it on the relay station side / switch groups / switch to an available model.

The default output naming is:images/slide-05.png, images/slide-06.png … (aligned with the deck page numbers).

4) Regenerate the PPTX and automatically insert the images

node .\skills\md-to-modern-pptx\scripts\md-deepresearch-to-pptx.js --in .\YOUR.md --out .\YOUR.pptx --theme golden-hour --images-dir .\images

(If you temporarily don't want to insert images: add --no-images。)

QA (mandatory)

Content QA (markitdown)

python -m markitdown .\YOUR.pptx
python -m markitdown .\YOUR.pptx | Select-String -Pattern "xxxx|lorem|ipsum|this.*(page|slide).*layout" -CaseSensitive:$false

Focus on:

  • Whether any paragraphs are missing or the order is wrong
  • Whether any Markdown markup remains (**/backticks)
  • Whether there is any placeholder text

Visual QA (optional, but strongly recommended)

If you have LibreOffice (soffice) and Poppler (pdftoppm) on your machine, you can use the pptx skill's thumbnail.py to generate a thumbnail grid and quickly spot problems such as overflow/occlusion/too-small margins:

python "$HOME\.agents\skills\pptx\scripts\thumbnail.py" .\YOUR.pptx deck-thumbs --cols 4

Common pitfalls (avoid them)

  • For PptxGenJS colors, do not include #, and do not smuggle transparency in via 8-digit hex (it will corrupt the file)
  • For lists, use bullet: true, don't write “•” directly
  • Don't reuse the same options object (PptxGenJS mutates it in place)

For more complete PPTX engineering notes, see directly pptx skill's pptxgenjs.md。