Quality

What markz is held to, what it costs to ship and hold, and how long it takes. Everything here is measured on this commit when the page is generated, by the same code as pnpm test. Quality says how markz is tested and what each status and edge means.

1323 examples · built Sat, 10 Oct 2026 21:40:21 GMT

Conformance

1323 of 1323 examples hold

Edges

37,124 cases generated from the grammar, each read as the grammar reads it

163 valid cases written from a construct’s grammar rule, read as that construct
11,888 boundary one-character edits the grammar still accepts, still read as the construct
25,073 near miss one-character edits the grammar rejects, not read as the construct
0 unsettled markz and the grammar disagree, and no side rule says why, which fails the tests

Generated on every test run from one fixed seed, so each run tries the same cases. Each construct’s row shows one of each.

Size

18.9 KB gzip to ship, of a 20 KB budget

used1.1 KB to spare

613 KB to hold the CommonMark spec's tree, a 201 KB document

One package with no dependencies: parser, tree and HTML, bundled and minified. The tree is flat typed arrays with offsets into the source, which it shares rather than copies.

Speed

A typical docs page 15 KB0.5–0.6 ms
The docs, all of them 108 KB3.9–4.5 ms
The CommonMark spec 201 KB6.0–7.5 ms

Parse + HTML, once the parser is warm. One pass, no backtracking, so time grows in step with the text: twice the text takes about twice as long. Measured on AMD EPYC, Node 26.11.1.

Metadata

Constructmatchwarndifferfail
Metadatafrontmatteryamlmarkz332100
1 construct332100

Block

Constructmatchwarndifferfail
Listscommonmarkgfmmarkz59000
Thematic breakscommonmarkmarkz14000
Headingscommonmarksluggermarkz103010
Code blockscommonmarkmarkz29000
Commentscommonmarkgfm-tablemarkz5070
Paragraphscommonmarkdirectivemarkz66000
Blockquotescommonmarkmarkz18000
Raw blockscommonmarkmarkz9000
Tablesgfmgfm-tablemarkz95000
Math blocksmathmarkz16020
Elementsmarkz15000
Attributesmarkz12000
12 constructs4410100

Inline

Constructmatchwarndifferfail
Escapes and referencescommonmarkgfm-tablemarkz20020
Inline codecommonmarkmarkz24000
Emphasiscommonmarkgfmgfm-strikethroughmarkz790300
Line breakscommonmarkmarkz12000
Inline mathmathmarkz9020
Spansmarkz9000
Expressionsmarkz3000
8 constructs2440340

Not supported

Rowmatchwarndifferfail
indented-codecommonmarkgfm-tabledirectivefrontmattermarkz05100
rule-markercommonmarkgfm-tablemarkz0900
star-emphasiscommonmarkgfm-strikethroughmarkz03100
tilde-fencecommonmarkmarkz0800
raw-htmlcommonmarkgfmgfm-tablemarkz07800
named-referencecommonmarkmarkz0800
setext-headingcommonmarkgfm-tablefrontmattermarkz02500
lazy-linecommonmarkgfm-tablemarkz01800
jsxcommonmarkmarkz0200
trailing-spacescommonmarkdirectivemarkz0800
underscore-strongcommonmarkmarkz01400
bare-urlcommonmarkgfmgfm-autolink-literalmarkz05300
single-tildegfm-strikethroughmarkz0900
footnotegfm-footnotemarkz02000
directivedirectivemarkz010300
math-delimitermathmarkz01000
trailing-heading-attributesmarkz0100
element-namemarkz0500
multiline-attributesmarkz0100
inline-attributesmarkz0300
toml-metadatamarkz0100
23 rows054000