Skip to content

Releases

v0.4

Choose a tag to compare

@pspoerri pspoerri released this 14 Mar 11:44

What's new

  • make install target — installs the marp2pptx binary to ~/.local/bin and 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

Choose a tag to compare

@pspoerri pspoerri released this 13 Mar 20:31

Theme & Template Support

Apply corporate themes by passing a .pptx or .potx template file:

marp2pptx -theme template.potx presentation.md

The 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.pptx

The 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 files

Full 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/pptxeval inspection 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

Choose a tag to compare

@pspoerri pspoerri released this 13 Mar 19:00

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

Choose a tag to compare

@pspoerri pspoerri released this 13 Mar 15:58