Conformance suite
379 cases in 16 sections, one JSON file per spec section under tests/. Each case pins the parse result, the diagnostics, and the two fallbacks. The pages below render every case live with the reference implementation: what you see in the "Rendered" column is produced at build time from the case's source, not copied from the file.
Structure (validity, diagnostic codes, AST) is normative for every implementation. The HTML and downgrade strings are reference output; other implementations must be equivalent, not byte-identical. See spec §7.
Writing an implementation? The cases are published as @markset-lang/conformance-suite: these 379 cases and the normative schema, carrying no parser, no renderer and no dependencies at all. The JSON is the artifact, so an implementation in any language reads the files directly — checking a second implementation should not require obtaining the first.
| Section | Cases | Valid | Invalid |
|---|---|---|---|
attribute-specifier | 56 | 23 | 33 |
bracketed-span | 24 | 20 | 4 |
block-directive | 77 | 50 | 27 |
separator-directive | 30 | 17 | 13 |
attribute-line | 40 | 31 | 9 |
callout | 16 | 15 | 1 |
card | 16 | 13 | 3 |
grid | 16 | 9 | 7 |
columns | 14 | 10 | 4 |
tabs | 15 | 9 | 6 |
steps | 13 | 9 | 4 |
metrics | 12 | 7 | 5 |
figure | 16 | 9 | 7 |
frontmatter | 16 | 9 | 7 |
diagram | 5 | 5 | 0 |
chart | 13 | 10 | 3 |