| Element | Support | Notes |
|---|---|---|
Headings # through ###### |
Yes | The first # becomes the PDF title |
| Paragraphs | Yes | Consistent typographic spacing |
| Bold and italic | Yes | Combined styles are supported |
| Strikethrough | Yes | CommonMark extension enabled |
| Links | Yes | Clickable PDF annotations |
| Local images | Yes | Paths relative to the source; missing files warn and keep alt text |
| Remote images | Yes | HTTPS downloaded by default; --no-external denies; --allow-http permits cleartext HTTP |
| Ordered lists | Yes | Nested lists supported |
| Unordered lists | Yes | Nested lists supported |
| Task lists | Yes | Rendered with Unicode symbols |
| Tables | Yes | Dark header and alternating rows |
| Block quotes | Yes | Callout with an accent rule |
| Horizontal rules | Yes | Full-width separator; slide break with --slides |
| Inline code | Yes | Monospace font |
| Fenced code blocks | Yes | Language follows the opening fence |
| Mermaid diagrams | Yes | mermaid / mmd fences rendered to SVG |
| Raw HTML | Partial | Displayed as text |
| Footnotes | Partial | Superscript reference only |
| Mathematics | Partial | Displayed as raw content |
Fenced blocks use complete TextMate grammars. The main Syntect/two-face catalog
supports common systems, web, data, shell, and application languages. Liquid
uses its full grammar with embedded HTML, CSS, JSON, and JavaScript contexts.
Unknown identifiers fall back to plain text. Long lines are wrapped visually.
--line-numbers numbers visual lines and is disabled by default.
See Syntax highlighting for tested identifiers and examples.
Fenced blocks tagged mermaid or mmd are rendered to SVG with a pure-Rust
Mermaid engine and embedded as centered images. SVG canvases are transparent so
they inherit the page background. Documents and light slide templates use
Mermaid's classic light palette; dark slides use its complete dark palette.
Labels use the embedded DejaVu Sans font. Wide pipelines grow more generously
in slide decks, while tall and non-wide diagrams stay within the slide area.
Invalid Mermaid source fails PDF generation with a clear error. No browser or
Node.js runtime is required.
Supported diagram families include flowcharts, sequence, class, state, ER, pie, XY, quadrant, gantt, timeline, journey, mindmap, and git graphs, subject to the embedded renderer. Gantt and timeline schedules are left-aligned and use the full printable width so their dates and labels remain readable.
Supported formats follow Typst's image engine and include PNG, JPEG, GIF, and SVG. An image alone in a paragraph becomes a centered block. An image embedded in text is sized to the line height.
Remote HTTPS images are downloaded and embedded by default (Typst itself has no
network access). Cleartext http:// URLs are blocked unless --allow-http is
set. Pass --no-external to skip all remote downloads. Failed downloads and
missing local files emit a warning, keep any alt text, and continue PDF
generation so linked badges still produce clickable labels.
A paragraph beginning with Expected result: automatically receives a green
validation style.