The .slaide File Structure

Learn the .slaide file format: the headmatter block, slide separators, per-slide frontmatter, and placeholders like {{page}} and {{title}}.


A .slaide file starts with a headmatter block. After that come the slides, separated by ---.

---                         ← leading fence: deck HEADMATTER (deck-wide config)
master: ./theme.slaide.yaml
title: My Talk
company: Acme, Inc.          ← any key becomes a {{placeholder}}
~transition: slide-left      ← `~` cascades this default to every later slide
---
layout: cover                ← per-slide FRONTMATTER (one config block per slide)
footer: Hello world          ← per-slide value, also usable as {{footer}}
---
:: title ::                  ← route Markdown into the layout slot "title"
My Talk
:: subtitle ::
An optional subtitle
---                          ← slide separator
## A content slide           ← a slide with no frontmatter. body goes to the main slot
- point one    >>>           ← `>>>` reveals this item as a build step
- point two    >>>
??? Speaker note. Hidden from the audience.

Separators and fences

  • A line that is exactly --- separates slides.
  • Inside a fenced code block (``` or ~~~), --- is literal text. It is not a separator.
  • The first config block is the deck headmatter.
  • After a separator, a block is that slide’s frontmatter only if two things are true. Every line is key: value. And it ends with another --- before the body. Otherwise the whole block is body.
  • Edge case: a body line that just contains a colon, like We offer: Tooling, is still body. When in doubt, an empty frontmatter (--- then ---) forces the next block to be body.

Headmatter keys

KeyMeaning
masterPath to the master file, relative to the deck. Omit it to use the bundled aurora theme.
title, author, date, company, …Deck metadata. Any key here becomes a {{placeholder}}.
~<key>Sets a cascading default from here on. For example ~transition: fade.
progresstrue or false. Shows a position bar and counter in the web deck. Default true. Web only, never in the PDF.

Per-slide frontmatter keys

KeyValuesMeaning
layouta layout name from the masterWhich layout to use.
transitionnone, fade, slide-left/right/up/down, zoom, morphHow this slide animates in.
backgrounda background name from the masterOverride the layout’s background.
varianta variant name from the masterApply scoped overrides, like a light section.
morphan idTake part in a shared-element morph.
footerMarkdown textPer-slide footer. Also available as {{footer}}.
chromeboth, header, footer, none, falseShow or hide the header and footer on this slide.
logofalseHide the corner logo on this slide.

Cascade vs scope. A bare key like transition: zoom applies to this slide only. A ~ key like ~transition: zoom becomes the default for this slide and every slide after it, until something overrides it.

Placeholders

Any key from headmatter or the current slide is available as {{ key }}. You use them inside chrome bands and master text. The built-ins:

PlaceholderValue
{{page}} / {{total}}slide number / slide count
{{pagePadded}} / {{totalPadded}}zero-padded, like 05 / 08
{{date}}the date: value, or today
{{title}} / {{author}}from headmatter
{{slideTitle}}the slide’s first heading
{{footer}}the current slide’s footer: value