v1.8.0 — ODP slide layouts
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 thestyle:presentation-page-layoutdefinitions 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.pyaccepts a per-slidelayoutkey (content keystitle/subtitle/body/body_left/body_rightfill the layout's zones) and a top-levelmastersarray for extra master pages with their own background colour.
Changed
create_minimal_odp.pyemits astyle:presentation-page-layoutper layout and tags slide frames withpresentation:class. Specs without alayoutkey are unchanged —title/bodyfill the defaulttitle-contentlayout.list_masters.pyreports slide layouts (presentation-page-layout+ placeholders) alongside master pages.validate_refs.py(ODP) flags slides whosepresentation-page-layout-namedoes not resolve.
Full changelog: CHANGELOG.md
🤖 Generated with Claude Code