All of CommonMark and GitHub-flavored Markdown, plus the handful of things a printed page actually needs. Here is exactly what Vaelora understands — and, further down, exactly what it doesn't.
Vaelora parses with cmark-gfm, the same engine behind GitHub. If your document renders there, it renders here — no dialect to learn, no subset to work around.
# ##
Emphasis*em* **strong**
Lists- 1.
Task lists- [x]
Links[text](url)
Images
Code``` `x`
Blockquotes>
Tables| a | b |
Strikethrough~~x~~
Autolinkshttps://…
Footnotes[^1]
Rules---
Raw HTML<div>
Emoji:rocket:
Markdown was designed for the web, where the page never ends. These are the additions that let a document say how it should sit on paper — each one plain text, each one optional.
::: {.warning}
Text, lists, tables —
anything at all.
:::
::: note
Shorthand for {.note}.
:::
Wrap any run of blocks in a container your stylesheet can reach. This is how a document says “this part is different” without inventing markup.
It is also how you control pagination: a stylesheet rule like .new-page { break-before: page } turns ::: {.new-page} into a page break, and break-inside: avoid keeps a signature block whole.
## Preface {.unnumbered}
## Introduction {#sec-intro}
{width=40% .right}
Pandoc’s brace syntax on headings and images. .unnumbered takes a heading out of section numbering — what a preface or an abstract wants. #id fixes the anchor, so [see](#sec-intro) survives a retitle.
On an image, width and height size it and any class is a hook for the stylesheet.
The area is $$\pi r^2$$, inline.
$$
\int_{a}^{b} f(x)\,dx = F(b) - F(a)
$$
One delimiter, and where it sits decides how it sets: a formula alone in a paragraph is centred on its own line, one inside a sentence sets in the line. Typeset with KaTeX before the page is laid out, so a formula is real text in the PDF — it scales with the document, stays selectable, and is embedded rather than pasted in as a picture.
A single $ is never a fence, so $1,200 per month is a price. And the TeX is read from your file exactly as written, which is why \\ for a matrix row and \, for a thin space survive when Markdown would otherwise eat them.
The term is {--12--}{++18++} months.
The fee is {~~ten~>twelve~~} thousand.
{==Check this clause==} before signing.
CriticMarkup, alongside the comments. Insertions, deletions, substitutions and highlights, written into the file rather than into a layer beside it — so a diff can read them and so can a model.
One file, three readings: show them marked up for review, render as if every change were taken, or as if none were. And in the preview you can take or drop one change on its own — or say something about it instead, which leaves a comment and changes nothing.
```swift
let term = 18 // months
```
A fenced block that names a language is coloured — 36 of them, from swift and python to sql, yaml and diff. The palette is in the stylesheet, deliberately restrained, and separated in lightness as well as hue so a listing still reads out of a black-and-white printer.
Nothing is guessed. A block that names no language is left exactly as written, which is what a transcript or a block of output wants.
The [Contracting Party]{.defined-term}
shall deliver by [1 March]{.date}.
[text]{.class} puts a class on a few words mid-sentence — a defined term, a party name, a date — so your stylesheet can reach them wherever they appear, without dropping into HTML for the sake of two words.

- [x] Signed
- [ ] Countersigned
An image alone in its paragraph becomes a figure with its alt text as the caption, and the two are never separated by a page break.
A task list's marks are drawn by the stylesheet rather than by the platform, so they look like the document instead of like a web form — and they print, which a browser checkbox does not reliably do.
---
title: Quarterly Review
subtitle: Q3 2026
author: R. Salesas
date: 2026-09-04
---
YAML at the top of the file becomes a title page. It is metadata, not markup — the title never enters your headings, so it stays out of the contents page and the PDF outline.
> [!NOTE]
> Worth knowing.
> [!TIP] Read this first
> And a title of your own.
GitHub alerts in seven kinds — NOTE, INFO, TIP, IMPORTANT, WARNING, CAUTION and DANGER — rendered as tinted callouts the paginator keeps whole rather than splitting across a page break.
Anything after the marker becomes the callout's own title; leave it off and the kind names itself. That follows Obsidian rather than GitHub, which reads those words as the first line of the body.
The rate is fixed
{>> RS: confirm with legal <<}
for the first year.
CriticMarkup comments live in the document and never reach the reader. A comment inside a heading does not appear in the heading, its anchor, the contents page or the outline — it simply is not there.
Show them in the app while you work; they vanish on export.
A line.
A line after real space.
Runs of blank lines are preserved as vertical space rather than collapsed. When you leave room on the page, the page keeps it.
Because the output is a real PDF rather than a screenshot of a web page, the things you write become things a reader can use.
Switch it on and headings carry real numbers — which means they reach the contents page, the outline, and anything you copy and paste. Never type your own as well.
The table of contents reads its page numbers back from the finished PDF, so they are the numbers actually printed, and every entry is clickable.
Your heading structure becomes the sidebar bookmarks in Preview, Acrobat and every other reader. Depth is yours to choose.
Written inline as [^1], collected at the end, and linked both ways — with one back-link per mention when a note is cited more than once.
Quotes curl, dashes join, ellipses close up. On by default, off in one click when a document needs the characters exactly as typed.
A heading is never left at the foot of a page without its paragraph, and a callout or table can ask to stay whole. Your stylesheet sets the rules.
Markdown has no single standard past CommonMark, and every tool draws its own line. Here is ours, plainly — including what to write instead.
The usual spellings (x^2^, H~2~O) collide with strikethrough and no two tools agree on them. Write <sup>2</sup> and <sub>2</sub> — raw HTML passes straight through and always has.
The Term / : definition form is not parsed, and will not be. Four tools spell it four ways, and <dl> written directly renders and styles perfectly well — one of the few places where the HTML really is the clearer answer.
Bibliographies, [@key] citations and index generation belong to academic publishing toolchains. Vaelora is for documents you write and hand over.
A document is one file. There is no {{include}} — which also means what you see in the editor is the whole of what exports.
[[Page]] and *[HTML]: … are not recognised. Ordinary links work everywhere.
A raw HTML block is passed through exactly as written — Markdown inside it is not parsed. Keep the two separate rather than nesting them.
Supported on headings and images. For anything else, a fenced div does the same job around a block — and reads better.
Both ways work. Pasted into the document, an SVG is now held to the content column rather than running past the margin. Referenced as a file —  — it also takes {width=…} and floats like any other image, which is the reason to prefer it.
An SVG exported with only a viewBox and no width has no natural size and fills the column; give it {width=…} if that is not what you want.
An image taller than the page is scaled down to fit one, rather than sliced across several. The rule lives in the stylesheet, so a style that would rather crop, or rather slice, can say so.
This page listed six of these as “coming” a fortnight ago. Five shipped; the sixth we decided against, and said so above.
TeX set as real text, so a formula scales with the document, stays selectable, and prints in its own fonts rather than as a picture.
Insertions, deletions, substitutions and highlights beside the comments — and a way to take or drop one at a time from the preview.
36 languages, restrained enough for a printed report, and off in one click. A block that names no language is untouched.
A caption tied to its picture, which a page break cannot separate — and an oversized image scaled to the page rather than sliced across two.
Your own title after the marker, and seven kinds where there were five.
[text]{.defined-term} — a class on a few words mid-sentence, for your stylesheet to pick up.
Parsing is cmark-gfm — the CommonMark reference implementation with GitHub’s extensions — through a fork that adds footnotes, fenced divs, attribute blocks, inline spans, comments, tracked changes, mathematics and preserved blank lines. Everything above is what the app renders today unless marked otherwise.