Repository navigation
Releases
v0.4
What's new
make installtarget — installs themarp2pptxbinary to~/.local/binand registers it as an opencode agent skill for use in AI-assisted workflows
Fixes
- Theme fix — resolved an issue with theme application
- Preserve template attributes —
defaultTextStyle,notesMasterIdLst, and presentation-level attributes from the template are now correctly carried over to the output
Full Changelog: v0.3...v0.4
Full Changelog: v0.3...v0.4
v0.3
Theme & Template Support
Apply corporate themes by passing a .pptx or .potx template file:
marp2pptx -theme template.potx presentation.mdThe tool automatically detects slide layouts from the template using a 3-pass algorithm (OOXML type attributes, placeholder composition scoring, name heuristics) — works with both standard and custom-named layouts. Template media, styles, and slide masters are preserved.
Bug Fixes
- Typographer text rendering — Goldmark's Typographer extension produces HTML entities (
“,…,–, etc.) which were being written literally into the PPTX. They are now decoded to proper Unicode characters. - Image visibility — Small images (e.g. icons) were rendered at their native pixel size, making them invisible in presentations. Images now scale up to fill their allocated area while maintaining aspect ratio.
- Title placeholders — Headings are now placed into proper PPTX placeholder shapes (
<p:ph type="title"/>,<p:ph type="ctrTitle"/>) so they inherit theme styling. The first heading becomes the title; remaining content goes into the body placeholder.
PPTX Evaluation Tool
New cmd/pptxeval tool for inspecting and validating generated PPTX files:
# Inspect structure, text, relationships
go run ./cmd/pptxeval output.pptx
# Extract text only
go run ./cmd/pptxeval -text output.pptx
# Validate structure (CI-friendly, exits non-zero on errors)
go run ./cmd/pptxeval -lint output.pptx
# Show raw XML for a specific slide
go run ./cmd/pptxeval -slide 3 output.pptxThe linter checks for: missing relationships, orphaned media, undeclared content types, unresolved HTML entities in text, zero-dimension shapes, and slide/rels count mismatches.
Makefile targets:
make eval ARGS=output.pptx # inspect a PPTX
make eval-lint ARGS=output.pptx # lint a PPTX
make eval-all # generate and inspect all test files
make eval-lint-all # generate and lint all test filesFull Changelog
- Add theme/template support with 3-pass layout detection
- Split titles into proper PPTX placeholders
- Fix typographer HTML entity decoding
- Fix image scaling for small images
- Add
cmd/pptxevalinspection and linting tool - Add integration tests for typographer, image visibility, and PPTX lint
- Add
.gitignore
Full Changelog: v0.2...v0.3
Full Changelog: v0.2...v0.3
Full Changelog: v0.2...v0.3
v0.2
Mermaid Diagram Support
This release adds full Mermaid diagram rendering as native PowerPoint shapes — no rasterized images, fully editable in PowerPoint.
Supported diagram types
- Flowcharts — all standard node shapes (round, stadium, subroutine, cylinder, circle, diamond, hexagon, trapezoid, double-circle)
- Sequence diagrams — participants, messages, and activation boxes
- Class diagrams — classes with attributes/methods and relationships
- State diagrams — states, transitions, start/end nodes, and cyclic transitions
- Journey diagrams — task timelines with sections and scoring
- ER diagrams — entities, attributes, and relationship connectors
Layout and rendering
- Graph-based layout using topological sorting and longest-path layering for optimal node placement
- Curved connectors with proper arrowheads between shapes
- Back-edge routing around intermediate nodes for cyclic graphs
- Label-arrow collision avoidance with virtual bounding boxes for text
- Connector snapping to correct connection points on shapes
- Edge overlap reduction for cleaner diagrams
Full Changelog: v0.1...v0.2
v0.1
Full Changelog: https://github.com/pspoerri/marp2pptx/commits/v0.1
Full Changelog: https://github.com/pspoerri/marp2pptx/commits/v0.1