`
element. This is useful for reveal.js features that are not exposed
through a dedicated Revealer shortcut.
```html
=== Auto-animated step
> attr: data-auto-animate
Same element, next state.
```
## Inline SVG and animation
Use `> svg:` to embed an SVG file inline at the position of the directive
(the path is relative to the presentation folder), then reveal or
transform its elements step by step with repeatable `> animate:` lines,
optionally hiding some elements up front with `> hide:`:
```html
=== Animated SVG
> svg: Media/Animated/demo.svg
> hide: #dot, #arrow
> animate: #box fill:#0F4C75
> animate: #dot opacity:1; fill:#c0392b @ 1s
> animate: #arrow opacity:1 @ 300ms
Reveal SVG elements step by step.
```
See [SVG animation](svg.md) for the full selector and duration syntax.
## Including other files
`> include: file.pres` replaces the line by the file's contents at build
time (recursive; paths resolve relative to the including file and must stay
inside the deck folder). It is made for lecture courses: keep each lecture
in its own `.pres` and assemble a master deck — see
[Recipes › Assembling a lecture course](recipes.md#assembling-a-lecture-course-with-include).
Included slides rebuild on save like the main file, but are **read-only in
the browser editor** — edit their own file instead.
## KaTeX macros
Reuse your LaTeX macros in the settings block, either from a `.tex` file of
`\newcommand` definitions (relative to the deck folder) or inline —
`> macro:` can be repeated:
```text
> macros: defs.tex
> macro: \half \frac{1}{2}
> macro: \R \mathbb{R}
```
Argument counts (`[2]`) can be declared but are dropped: KaTeX infers arity
from `#n` in the body. Custom `> katex: { ... }` options merge with the
bundled-KaTeX config and the macros instead of replacing them.
## Build diagnostics
The build never fails on a syntax mistake — but it no longer stays silent
either. Anything the parser has to drop or reinterpret prints a
`Warning: line N: …` in the terminal (both `revealer build` and the live
`revealer serve` log):
- an unrecognized `>` directive (e.g. a typo like `> grid(a,b)`), with a
hint when it looks like a construct child outside its parent
(`> card` without a `> grid`);
- a stray `> end: name` that closes nothing;
- a callout or equation block that is never closed **and** swallowed the
next construct into itself (auto-closing at a slide or column boundary
is fine and stays silent);
- a bare `> space` outside a `> fill` slide (it only *fills* there —
use `> space: ` elsewhere);
- a media path (`!` / `!!`) that does not exist on disk.