Slides plugin — how the Slide type works
The Slides plugin ships one dynamic node type, Publish/Slide — its C# lives under
Slide/Source/ and the mesh compiles it live on install. No app rebuild, no NuGet.
Publish/Slide
A presentation slide. Its content (SlideContent) carries:
- Content — the slide body as markdown (raw HTML/SVG passes through, so a slide can be anything from bullets to a full-bleed illustration).
- Notes — speaker notes (markdown), shown only in the Notes view.
- Background — an optional CSS background for the stage (else a theme-aware default gradient).
Views
- Content (default) — the 16:9 stage with a slim presenter bar underneath: ◀ Prev · "Slide n / N" · Deck · Present · Next ▶. Clicking the stage advances to the next slide.
- Present — the chrome-free stage (click to advance), a small corner counter the only overlay. Open this full-screen to present.
- Notes — the speaker notes plus a compact preview of the slide.
Deck order
A slide's siblings of the same type form its deck, played by Order (null last). If the parent is
a Deck node with a non-empty Slides manifest, that external order wins instead. Prev/Next derive
the slide's own type from the node, so navigation works whatever the type is installed as.
Authoring a deck
MyDeck any parent (a Space, a Markdown node, or a Deck)
S01 nodeType Publish/Slide Order 1
S02 nodeType Publish/Slide Order 2
S03 nodeType Publish/Slide Order 3
Slides as files
A slide authored in a git-synced repo is a .md with NodeType: Publish/Slide in its front matter:
the body is the stage, Notes: is the spoken script and Background: is the stage CSS. That format
belongs to this pack — MeshWeaver.Publish contributes the parser that reads it, so the platform
carries no per-type branch for slides. File formats covers how it plugs
into the shared parser chain, why the write direction is still the platform's, and the recorded
import-ordering decision.
🚨 Quote a Background: whose value contains # (every #rrggbb gradient does). YAML ends an
unquoted scalar at the hash, so Background: linear-gradient(135deg, #667eea 0%, ...) arrives
truncated to linear-gradient(135deg, — with no error anywhere.