Glossary term cards
Key concepts and abbreviations explain themselves. A glossary.yaml beside deck.mdx holds them; the
compiler links the first mention of each term on every slide (body text first, a heading only when
the body never says it; code, maths, links, controls and self-painting text like <GradientText> are
left alone), and the runtime shows the definition in a card.
Rest the pointer on a dotted word: the cursor fills like a pie and the underline draws itself solid, then the card opens, anchored to the word. A click or a tap opens it at once and pins it; f labels every term so the keyboard reaches them; Esc, a press elsewhere or the next step closes it.
# glossary.yaml — the key is the card's title and the first string matchedGNSS: Satellite positioning — GPS, NavIC, Galileo and the rest. # short formUTM: full: Universal Transverse Mercator # an abbreviation's expansion def: Sixty projections that turn latitude and longitude into **metres**. # inline Markdown, $maths$ more: Chennai sits in zone 44N. # a second, quieter paragraph aliases: [UTM zone 44N] # other spellings; plurals are found on their own tag: Projection # the category chip link: https://epsg.io/32644 # a source (or { href, label }) see: [WGS84, EPSG] # chips that swap the card to a related term auto: false # never linked automatically<Term>UTM</Term> {/* the entry, by name or alias */}<Term id="utm">projected metres</Term> {/* other words, same entry */}<Term def="Root-mean-square error." tag="Statistics"> RMSE</Term>{/* a one-off, no entry */}Matching rules
Section titled “Matching rules”- A name with no lowercase letter, or shorter than four characters, matches in its exact case only
(
WHO, never “who”). - Part of a hyphenated compound counts as a mention only for such an abbreviation (
GNSS-derived, notcell-level). - Definitions — a one-off’s too — are rendered at build time, KaTeX included, so the browser loads no Markdown or maths code for them.
- A YAML mistake or an unknown
<Term>is a build warning, never a failed build.
Options
Section titled “Options”Per slide: terms: false links nothing automatically; terms: { skip: [GIS] } leaves single terms out.
Deck-wide, in the headmatter: glossary: terms.yaml (another path), glossary: false, or
glossary: repeat: all # link every mention, not just the first per slide headings: fallback # false | true | fallback skip: [MyComponent] delay: 700 # ms of hover before a card opens sync: false # start with "Share terms" onWords that reach a component as a prop are out of the compiler’s reach; link them where they render
with <Terms>{label}</Terms>.
Sharing cards with the room
Section titled “Sharing cards with the room”A card is the presenter’s own aid until the presenter view’s Share terms is on (off by default,
remembered per deck; glossary: { sync: true } starts it on). Then every card the presenter opens also
opens on the projector window and on every phone, and closes there when it closes or the deck moves on.
What travels through the room is a mention — slide, term, occurrence — not the words, so a late joiner
gets the open card too. A viewer’s own cards stay private.