claudeers.
// Claude Skills

html-to-editable-pptx

Convert HTML slide decks to truly editable PPT / .pptx - text stays native PowerPoint textboxes, not screenshots. Agent Skill (Claude Code / Cursor / Codex /…

Actively maintained
88/100
last commit about 2 months ago
last release none
releases 0
open issues 0
// star history+2 this week (+3.8%)

Install with your AI

Paste into Claude Code, Cursor, or any agent — it reads the repo and wires the tool into your project.

Install and set up html-to-editable-pptx (claude-skill project) into my current project.
Found on https://claudeers.com/html-to-editable-pptx
Repo: https://github.com/Hasasasa/html-to-editable-pptx
Homepage/docs: —
Detected install method: claude-skill → # copy this skill into .claude/skills/html-to-editable-pptx/
Category: skills. Platforms: cli, web.
Read the repo's README for exact setup and env vars, then install it and wire it into my project.

Claudeers Health Verdict:
active; community-verified: false. Confirm the source before running anything.
// or install directly (claude-skill)
# copy the skill dir into your project:
# .claude/skills/html-to-editable-pptx/   (or ~/.claude/skills/html-to-editable-pptx/ for all projects)
// or clone
git clone https://github.com/Hasasasa/html-to-editable-pptx

// compatibility

Platformscli, web
Operating systems
AI compatibilityclaude
LicenseMIT
Pricingopen-source
LanguagePython

HTML-TO-PPTX

📖 English中文

Convert HTML slide decks into editable .pptx: text stays as native PowerPoint textboxes, fonts are subset on demand, complex CSS decorations fall back to local snapshots, and HTML/PPT side-by-side audit material is generated for review.

Original HTML renderinghtml-to-pptx output rendered in PowerPoint
Original HTMLhtml-to-pptx output, opened in PowerPoint

Text stays as editable vectors; complex decorations are rasterized locally.

Why this exists

HTML is a great medium for slide decks — layout, typography, animation, and complex visuals are all more flexible than in PowerPoint. But delivery often requires .pptx, and most "HTML → PPT" tools flatten each page into a single image, leaving text uneditable, unsearchable, and pixelated when zoomed.

html-to-pptx avoids the "whole-page screenshot" route. It decomposes HTML into objects PowerPoint understands: text becomes editable textboxes; simple geometry becomes native shapes / lines; effects PPT can't express natively (gradients, shadows, filters, blend modes) are snapshotted locally and placed as a decoration layer behind the vector text.

The result: the output stays close to the HTML source while remaining searchable, editable, and rescalable in PowerPoint / WPS — not a stack of immutable images.

Gets better with use

Each install keeps a private references/lessons-learned.md — seeded once from the committed template, then gitignored. When the audit loop turns up a generalizable HTML anti-pattern or OOXML boundary, the fix recipe gets appended there. Every subsequent convert re-reads the file, so decks sharing traits with ones you've already audited tend to land cleaner on the first pass.

The local copy is never overwritten by upstream — git pull updates the template, not your accumulated notes.

What it handles

Supports single-file HTML decks from beautiful-html-templates / guizang-ppt-skill / Reveal.js / hand-written decks / browser fullscreen pages, with automatic slide detection.

CSS → PPT routing:

HTML element / CSSWhat it becomes in PPT
Text, rich text, color, size, tracking, line-height, alignmentEditable textboxes — searchable and scalable
Background color, border, border-radius, linesNative OOXML geometry
gradient, box-shadow, filter, backdrop-filter, mix-blend-mode, complex transformsLocal snapshot underlay; text still drawn on top as vector
SVG, images, canvasEmbedded directly
Google FontsSubset by characters actually used; CJK content auto-seeds Noto Sans SC / Noto Serif SC

For the full CSS coverage matrix, see references/supported-css.md.

Quick start (Claude Code)

Install

In a Claude Code session, just hand Claude the repo URL:

Install this skill for me: https://github.com/Hasasasa/claude-skill-html-to-pptx

Claude will git clone it into the right skills directory for your platform (macOS / Linux: ~/.claude/skills/; Windows: %USERPROFILE%\.claude\skills\) and walk you through installing Python 3.10+, Playwright, and dependencies. System-level steps will still ask for your confirmation.

Use

After install, ask in plain language:

Convert D:\path\to\deck.html to pptx

Full skill invocation rules, audit mode, and fix discipline are in SKILL.md.

Manual usage (without Claude Code)

If you're not using Claude Code, clone the repo and run the CLI directly.

Install

Requires Python 3.10+ and pip.

git clone https://github.com/Hasasasa/claude-skill-html-to-pptx.git
cd claude-skill-html-to-pptx
pip install -r requirements.txt
python -m playwright install chromium

The visual audit step renders .pptx to PNG. Either of the following works:

  • Windows + Office
  • LibreOffice

requirements.txt already includes pywin32 (Windows-only) and pdf2image. For the LibreOffice route, you also need LibreOffice installed on the system; on Windows, pdf2image typically needs Poppler too. The .pptx itself still generates without a renderer — only the HTML/PPT side-by-side audit images are skipped.

Run

python convert.py path/to/deck.html

Output goes to path/to/deck.pptx next to the input. On first run, a working copy at path/to/deck.audited.html is created automatically; all subsequent audit fixes modify this copy, leaving the original HTML untouched.

Common flags:

FlagWhat it does
--out <path>Custom output .pptx path
--keep-screenshotsKeep per-slide HTML reference screenshots and measurement files
--install-user-fontsInstall non-CJK fonts into the user font directory so WPS / PowerPoint COM can render them
--no-embed-fontsSkip font embedding — smaller file but may fall back to system fonts on other machines
--no-preflightSkip the Stage 1 risk pre-scan
--no-verifySkip the Stage 5a structural self-check
--no-visual-auditSkip the Stage 5b visual audit material generation
--only-slides 2,7,12Re-run only the listed slides (incremental mode for audit iteration)
--cleanupClean up audit / measurement / preflight intermediate artifacts

Tests

Regression tests cover OOXML invariants (assemble), font-resolver caching semantics, and browser-based measure/discovery checkpoints (auto-skipped if Playwright/Chromium is unavailable):

python -m pytest tests -q

More demos

Each pair: HTML rendering on the left, html-to-pptx output (rendered in PowerPoint) on the right.

Signal

Signal HTML renderingSignal PPT output
HTMLhtml-to-pptx output

Market Outlook

Market Outlook HTML renderingMarket Outlook PPT output
HTMLhtml-to-pptx output

OpenClaw — Human-AI Collaboration Framework

OpenClaw HTML renderingOpenClaw PPT output
HTMLhtml-to-pptx output

8-Bit Orbit

8-Bit Orbit HTML rendering8-Bit Orbit PPT output
HTMLhtml-to-pptx output

Apex Group (Bold Poster)

Bold Poster HTML renderingBold Poster PPT output
HTMLhtml-to-pptx output

Broadside

Broadside HTML renderingBroadside PPT output
HTMLhtml-to-pptx output

Pipeline

[1 preflight] -> [2 measure] -> [3 assemble] -> [4 embed fonts] -> [5a self check] -> [5b visual audit]
 preflight.py     measure.py      assemble.py     embed_fonts.py      self_check.py      visual_audit.py
  • preflight: scan for high-risk HTML/CSS patterns.
  • measure: probe the DOM with Playwright, extracting text, shape, media, and decoration records.
  • assemble: write OOXML — textbox / shape / media / snapshot.
  • embed_fonts: subset and embed fonts by characters actually used.
  • self_check: scan PPTX for structural risks and call the renderer to export per-slide PNGs.
  • visual_audit: generate HTML/PPT side-by-side images, contact sheet, audit index, and the review prompt.

Design principles

PrincipleWhat it means
Vector-firstText and simple geometry stay as native PPT objects — editable, searchable, scalable
Local fallbackOnly complex decorations go through the snapshot channel — no whole-page rasterization
Portable fontsGoogle Fonts auto-resolved and subset-embedded to reduce cross-machine drift
AuditablePer-slide HTML/PPT comparison material lets visual issues be located and iterated
Source-preservingA .audited.html working copy is created automatically; the original HTML is never modified

Further reading

// faq

What is html-to-editable-pptx?

Convert HTML slide decks to truly editable PPT / .pptx - text stays native PowerPoint textboxes, not screenshots. Agent Skill (Claude Code / Cursor / Codex / opencode) + plain Python CLI.. It is open-source on GitHub.

Is html-to-editable-pptx free to use?

html-to-editable-pptx is open-source under the MIT license, so it is free to use.

What category does html-to-editable-pptx belong to?

html-to-editable-pptx is listed under skills in the Claudeers registry of Claude-compatible tools.

2 views
54 stars
unclaimed
updated 28 days ago

// embed badge

html-to-editable-pptx on Claudeers
[![Claudeers](https://claudeers.com/api/badge/html-to-editable-pptx.svg)](https://claudeers.com/html-to-editable-pptx)

// retro hit counter

html-to-editable-pptx hit counter
[![Hits](https://claudeers.com/api/counter/html-to-editable-pptx.svg)](https://claudeers.com/html-to-editable-pptx)

// reviews

// guestbook

0/500

// related in Claude Skills

🔓

An agentic skills framework & software development methodology that works.

// skillsobra/Shell272,506MIT[ claude ]
🔓

Public repository for Agent Skills

// skillsanthropics/Python169,406[ claude ]
🔓

💫 Toolkit to help you get started with Spec-Driven Development

// skillsgithub/Python129,208MIT[ claude ]
🔓

AI coding assistant skill (Claude Code, Codex, OpenCode, Cursor, Gemini CLI, and more). Turn any folder of code, SQL schemas, R scripts, shell scripts, docs,…

// skillsGraphify-Labs/Python106,387MIT[ claude ]
→ see how html-to-editable-pptx connects across the ecosystem