How fe-berserker/pen2ppt works
Pen2ppt is an Agent Skill that turns Pencil designs into editable PowerPoint decks. The main workflow exports each top-level frame through Pencil MCP, combines the HTML slides, then renders them with headless Chromium and dom-to-pptx. The export stage freezes layout and can embed compatible images with original bytes; a post-export pass repairs CJK font metadata. Workspace configuration organizes output by deck. The README documents these capabilities, but source excerpts for Pencil MCP dispatch and workspace use during export are incomplete, so those links are not inferred.
Main entry points: export-pptx.mjs PPTX renderer · build-combined.mjs HTML stitching · fix-cjk-fonts.mjs CJK font repair · workspace.mjs Workspace config
Components 13
Design export
- Frame HTML
HTML conversion
- HTML stitching
scripts/build-combined.mjs - Combined HTML
PPTX output
- PPTX renderer
scripts/export-pptx.mjs - Image handling
scripts/native-image-patch.mjs - Editable PPTX
- CJK font repair
scripts/fix-cjk-fonts.mjs
Export workspace
- Workspace config
scripts/workspace.mjs - Deck output folder
Other components
- User
- Agent skill
SKILL.md - Pencil MCP
- Headless Chromium
Connections 13
- User → Agent skill: requests conversion
- Agent skill → Pencil MCP: exports frames
- Pencil MCP → Frame HTML: returns HTML
- Frame HTML → HTML stitching: reads slides
- HTML stitching → Combined HTML: writes HTML
- Combined HTML → PPTX renderer: loads input
- PPTX renderer → Image handling: patches bundle
- PPTX renderer → Headless Chromium: launches browser
- PPTX renderer → Editable PPTX: writes deck
- PPTX renderer → CJK font repair: repairs fonts
- CJK font repair → Editable PPTX: rewrites package
- User → Workspace config: sets path
- Workspace config → Deck output folder: creates folder