| name | html2ppt |
| description | Generate PowerPoint decks from outlines or HTML slide decks; use when the user wants a .pptx, a slide narrative, or an HTML-to-PPT export workflow. |
Html2PPT
When To Use
Use this skill when the user asks for a presentation, pitch deck, report deck, workshop deck, or any .pptx output.
Prefer the HTML-to-PPT path when layout fidelity matters.
Prefer the schema-to-PPT path when PowerPoint editability matters.
If the deck needs fresh facts or image leads, research first with SearxNG.
Workflow
- If the user gives only an outline, first draft the deck as HTML slides.
- If the user already has HTML, keep it and export it directly.
- Build each slide as a self-contained
.slide block.
- Choose the source of truth:
- HTML when browser fidelity matters
- schema when native PPT editability matters
- If needed, collect current facts or image leads with
scripts/searxng_research.py.
- Validate the HTML deck against the slide contract before export.
- Export with
scripts/html2ppt.py or scripts/schema2ppt.py.
- If the deck needs edits, update the HTML, schema, or use
scripts/deck_editor.py, then rerun the export.
Rules
- Prefer one idea per slide.
- Keep the canvas fixed at 16:9 unless the user asks otherwise.
- Use local assets and stable relative paths.
- Make text large enough to survive screenshot export.
- Use SVG for charts, icons, and logos when possible.
- Split dense tables and long bullets across slides.
- When users complain that the PPT looks blurry, increase
--render-scale or switch to the schema workflow.
- When users want AI to search for references or images, use the SearxNG script rather than ad-hoc scraping.
- Some self-hosted SearxNG instances may need
--insecure if the local Python trust store cannot verify their TLS chain.
HTML Contract
- Use
section.slide as the slide root.
- Default slide size is
1280x720.
- Design each slide to stand alone as a screenshot.
- Avoid scrollable content, hidden overflow, and hover-only interactions.
- For best results, use explicit CSS variables for colors, spacing, and type scale.
Tooling
scripts/html2ppt.py renders slide elements with Playwright and writes a .pptx.
scripts/schema2ppt.py renders a JSON slide schema into native editable PowerPoint objects.
scripts/deck_editor.py runs a lightweight local editor with preview, validation, save, and export actions.
scripts/searxng_research.py queries a SearxNG instance and can download image leads into local assets.
- See
references/html-slide-contract.md for the recommended HTML structure and authoring pattern.
- See
references/schema-slide-contract.md for the native editable schema path.
- See
references/searxng-research-workflow.md for the research workflow.