This walkthrough shows a practical iterative workflow where you:
- author in Markdown,
- render with a template,
- make manual PowerPoint edits,
- revise Markdown,
- regenerate safely with
--update-existing.
- Managed slides are slides generated by MarpToPptx and tagged with slide metadata in
p:extLst. - Unmanaged slides are slides added manually in PowerPoint (no MarpToPptx slide metadata).
--update-existingreconciles against a previous managed deck.--templatesupplies rendering artifacts (masters, layouts, andTemplate[n]behavior).
During update mode:
- managed slides are matched by slide identity (not raw ordinal position),
- unmanaged slides are preserved,
- changed managed slides are replaced wholesale (not merged shape-by-shape).
---
marp: true
layout: Title and Content
---
<!-- _layout: Template[1] -->
# Product Kickoff
---
## Goals
- Launch plan
- Messagingmarp2pptx deck.md --template conference-template.pptx -o deck.pptxOpen deck.pptx in PowerPoint and add a slide that does not come from Markdown
(for example, a marketing slide provided by another team). Save it as
deck-with-manual-edits.pptx.
marp2pptx deck.md --write-slide-ids -o deck.pptxIt adds only missing <!-- slideId: ... --> directives, preserves any
existing explicit directives, and rewrites deck.md in place as part of
the run.
Edit deck.md (change text, add/remove Markdown slides, or adjust directives).
marp2pptx deck.md \
--update-existing deck-with-manual-edits.pptx \
--template conference-template.pptx \
-o deck-updated.pptx- Manual PowerPoint-only slide(s) remain in the deck (unmanaged slide preservation).
- Managed slides are reconciled by identity.
- Any changed managed slide is regenerated and replaced as a whole.
-
Mistake: Passing only
--templateand expecting update reconciliation.
Fix: Pass the previous generated deck to--update-existing. -
Mistake: Treating the template as the previous deck.
Fix: Keep them separate: previous deck for reconciliation, template for rendering. -
Mistake: Expecting manual edits inside a changed managed slide to survive.
Fix: Re-apply those edits in Markdown or move them to unmanaged slides. -
Mistake: Assuming explicit
slideIddirectives are auto-added forever.
Fix: Run--write-slide-idswhen bootstrapping or when adding slides that still lack directives.