Pin canonical JSON escaping to minimal shortest-form
CI / gate (push) Successful in 7s

This commit is contained in:
2026-08-24 00:25:20 +02:00
parent a4e5718a87
commit 864348b674
+3 -2
View File
@@ -65,8 +65,9 @@ colon run inside a code fence or opaque carry is content. Canonical form uses mi
**Attributes**: `{key=value key2="two words"}`. A bare value matches `[A-Za-z0-9_-]+`; any other
value is double-quoted with JSON string escaping (`\"` `\\` `\n` `\t` `\uXXXX`, …) — total over
Unicode, and raw newlines never appear inside quotes. All values are strings at the grammar
level; each node's section assigns types. Canonical form orders keys alphabetically and spells
values bare wherever allowed.
level; each node's section assigns types. Canonical form orders keys alphabetically, spells
values bare wherever allowed, and inside quotes escapes only what it must, using the shortest
escape form.
**Escaping**: the emitter backslash-escapes whatever literal text would otherwise parse as
directive syntax — the leading `:` of a would-be directive, `]` inside content; a backslash