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 **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 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 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 level; each node's section assigns types. Canonical form orders keys alphabetically, spells
values bare wherever allowed. 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 **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 directive syntax — the leading `:` of a would-be directive, `]` inside content; a backslash