Table of Contents
A2ML is modular. The core stays small; additional modules add features. Modules only extend the surface syntax. The typed core is shared.
-
Headings, paragraphs, lists, code fences
-
Directives:
@abstract,@refs,@opaque
Adds IDs and explicit references.
Directive ::= "@" Name Attrs? ":" NL DirectiveBody "@end"
Attrs ::= "(" Attr ("," Attr)* ")"
Attr ::= "id" "=" ID | "ref" "=" ID
InlineRef ::= "@ref(" ID ")"Semantics: all refs must resolve in checked/attested modes; IDs must be unique.
Adds @fig and @table blocks with captions.
Semantics: captions required; optional policy that figures must be referenced.
Adds footnote references and definitions.
Semantics: footnote refs must resolve in checked/attested modes.
Adds Djot-style attribute blocks for metadata and styling.
Semantics: attributes map to metadata; no invariants unless declared.