How directives work
Five things that can be clicked or that step out of the prose, collectively container directives. They are what Pamphlet adds on top of standard Markdown.
One rule
[directive label]is always the words your reader sees{attributes}are always parameters for the compiler
That is the whole rule; there is nothing to memorise per directive.
In this project a heading is Markdown's # (see Headings). The text in square brackets is always called the directive label — the diagnostics say so too.
All of them are container directives
Every directive name must wrap its content in paired colons. The single-line form ::name[content] reports DIR-202.
Nesting needs more colons on the outside
:::tabs around :::tab does not work — with equal colons, the first ::: closes the outer one.
Write ::::tabs around :::tab: four colons outside, three inside.
Typos are survivable
The diagnostics recognise other tools' spellings:
Typos within an edit distance of 2 get a "did you mean X?".
An unknown directive is only a DIR-201 warning, because the content is still emitted as-is — nothing is lost.
Unknown attributes are ignored
An attribute the directive does not know reports DIR-207 and lists the ones it does know.
class and id do nothing today
The directive syntax allows {.myclass} and {#myid}, and Pamphlet does not warn about them — but they are not emitted either; the values are dropped silently.
To change styling, use theme tokens.