Example Marp deck

shiv.me/slides/example-marp · 2026

shiv.me

Why Marp lives here

  • One markdown file per deck — the whole deck is marp/decks/<slug>.md
  • Builds to /slides/<slug>/ with no per-deck project
  • Diffs like prose, because it is prose
shiv.me

Conventions

shiv.me

The three slide classes

Class Use
lead Title slide, left-aligned, no pagination
divider Full-bleed accent break between sections
(none) Normal content slide

Set one per slide with <!-- _class: divider -->.

shiv.me

Code reads fine at the back of the room

def build(deck: Path) -> Path:
    out = STATIC / "slides" / deck.stem / "index.html"
    out.parent.mkdir(parents=True, exist_ok=True)
    return out

Anything above ~24 lines will overflow — split the slide instead of shrinking it.

shiv.me

Images and assets

Put deck assets in marp/assets/ and reference them relatively:

![width:520px](../assets/diagram.png)

The build runs with --allow-local-files, so local images are inlined.

shiv.me

Delete this deck

It exists to show the conventions, not to be presented