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.
A deck's Overview is a template: the splitter, its nav and the welcome stage render at once; the group title, the numbered slide links, the stage title and intro, and whether Present shows are bound to the deck node and its resolved slides as they arrive. Until the deck answers the panes draw the loading shape — only a deck that has ANSWERED with zero slides says it has none.
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.