Skip to content

v1.8.0 — ODP slide layouts

Choose a tag to compare

@leiverkus leiverkus released this 22 May 16:58
· 18 commits to main since this release

Named slide layouts, multiple master pages, and per-slide assignment for ODP — reclassifying the former "Impress slide-master hierarchies" non-goal. ODF has no master-page hierarchy: a slide references a master page (chrome) and a slide layout (placeholder zones) independently. This delivers the achievable equivalent of PowerPoint slide layouts.

Added

  • odp_layouts.py — a slide-layout library: six standard layouts (title-slide, title-content, two-content, section-header, title-only, blank) defined as placeholder-zone data — one source of truth for both the style:presentation-page-layout definitions and frame placement.
  • set_layout.py — reassign the slide layout and/or master page on one or more slides, repositioning placeholder frames to the new layout's zones.
  • create_minimal_odp.py accepts a per-slide layout key (content keys title/subtitle/body/body_left/body_right fill the layout's zones) and a top-level masters array for extra master pages with their own background colour.

Changed

  • create_minimal_odp.py emits a style:presentation-page-layout per layout and tags slide frames with presentation:class. Specs without a layout key are unchanged — title/body fill the default title-content layout.
  • list_masters.py reports slide layouts (presentation-page-layout + placeholders) alongside master pages.
  • validate_refs.py (ODP) flags slides whose presentation-page-layout-name does not resolve.

Full changelog: CHANGELOG.md

🤖 Generated with Claude Code