Expand description
Presentation deck rendering — Slides as a first-class SurfDoc output type.
This mirrors the ::site/::page website path in crate::render_html:
a ::deck/::slide block family is extracted into a DeckConfig plus a
list of SlideEntry, then rendered to a single self-contained HTML file
using the canonical surf-dark reference theme (the shell ported from
decks/surf-platform-pitch.html — top progress bar, keyboard/click/touch
nav, fullscreen).
Slide content reuses the existing block renderers ([render_block]) and the
bundled crate::SURFDOC_CSS, so a slide is an arrangement of blocks that
already exist — no new content primitives. The deck chrome is layered on
top.
When a document has neither a ::deck nor any ::slide, every #/##
heading boundary becomes a slide (Presentation Mode), so any SurfDoc is
already a deck with zero edits.
Structs§
- Deck
Config - Deck-level configuration extracted from a
::deckblock (peer ofcrate::SiteConfig). - Slide
Entry - A single slide extracted from a
::slideblock (or an auto-split section).
Functions§
- extract_
deck - Extract deck config and slide list from a parsed
SurfDoc. - render_
deck_ html - Render a deck config + slide list into a single standalone HTML file.
- to_
slides_ html - Render a parsed
SurfDocas a complete, self-contained HTML deck.