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:

Views

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.