About html-to-pptx
html-to-pptx is a skill that converts HTML files or URLs into PowerPoint presentations using PptxGenJS. It offers editable text, image-based rendering, automatic mode selection, and support for Hebrew and RTL layouts.
Key features
- 01Convert HTML files and URLs
- 02Choose text, image, or auto mode
- 03Support Hebrew and RTL layouts
- 04Split slides by CSS selector
- 05Customize layout, fonts, and styling
Use cases
- 01Turn an HTML document into editable slides
- 02Convert a web page into a presentation
- 03Preserve complex layouts as slide images
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aviz85/ claude-skills-library --skill html-to-pptxAfter installing, type/html-to-pptxin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
package.jsonREADME.mdSETUP.mdscripts/html-to-pptx.jsDetails
From the project READMEHTML to PowerPoint Converter
First time? If
setup_complete: falseabove, run./SETUP.mdfirst, then setsetup_complete: true.
Convert HTML to PowerPoint (.pptx) with excellent Hebrew/RTL support using PptxGenJS.
Setup (One-time)
cd ~/.claude/skills/html-to-pptx && npm install
Quick Usage
Basic conversion:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js input.html output.pptx
Hebrew document with RTL:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js hebrew.html presentation.pptx --rtl
Convert URL to PowerPoint:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js https://example.com slides.pptx
Complex HTML as images (pixel-perfect):
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js complex.html slides.pptx --mode=image
Conversion Modes
| Mode | Description | Best For |
|---|---|---|
text | Parse HTML, create native PPTX elements | Simple HTML, editable text |
image | Screenshot HTML, embed as images | Complex layouts, exact rendering |
auto | Auto-detect best mode | Default |
Options
| Option | Description | Default |
|---|---|---|
--mode=<mode> | text, image, auto | auto |
--rtl | Force RTL for Hebrew/Arabic | auto-detect |
--title=<title> | Presentation title | auto |
--author=<author> | Author name | AVIZ |
--layout=<layout> | LAYOUT_16x9, LAYOUT_4x3 | LAYOUT_16x9 |
--font=<font> | Default font | Heebo (Hebrew) / Arial |
--font-size=<size> | Font size in points | 18 |
--background=<color> | Background color (hex) | - |
--slide-per=<selector> | Split slides by CSS selector | - |
--wait=<ms> | Wait for rendering (image mode) | 2000 |
Examples
Hebrew presentation:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js hebrew.html slides.pptx --rtl --font=Heebo
Split by sections:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js doc.html slides.pptx --slide-per=section
Custom styling:
node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js doc.html slides.pptx --font=David --font-size=24 --background=F5F5F5
Pipe HTML:
echo "<h1>שלום עולם</h1>" | node ~/.claude/skills/html-to-pptx/scripts/html-to-pptx.js - output.pptx --rtl
Hebrew Best Practices
- Use
<html lang="he" dir="rtl">in HTML - Always add
--rtlflag - Use Hebrew-supporting fonts: Heebo, David, Noto Sans Hebrew
- For complex layouts, use
--mode=imagefor pixel-perfect results
Slide Structure
The converter auto-detects slide boundaries:
<section>elements<article>elements.slideclass<hr>elements
Or use --slide-per=".my-slide" for custom selectors.
Comments
Markdown supported