diff --git a/docs/decisions.md b/docs/decisions.md index 691f937..aa861ca 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -310,13 +310,13 @@ past `[x]`/`[ ]`, and lifting bare URLs, `@name`, `:shortcode:` or ISO dates int ## The portable reader refuses what GFM's reading would drop -2026-10-14, the maintainer. Goals 4 and 7. Valid while a refusal is a result (Goal 1) and the -caller can fix the markdown it sent. +2026-10-14, the maintainer. Goals 4 and 7. Valid while a refusal is a result and the caller can +fix the markdown it sent. -Where GFM's reading of a shape drops content, `portableMarkdownToAdf` refuses the shape rather than -drop it, and reads every other shape as GFM does. A pipe table row holding more cells than its header -is `malformed-pipe-table`, where GFM cuts the extra cells. Cutting breaks Goal 7, and reading the row -any way GFM does not, such as widening the table, breaks Goal 4; a refusal breaks neither. +Where GFM's reading of a shape drops content, `portableMarkdownToAdf` refuses the shape. A pipe +table row holding more cells than its header is `malformed-pipe-table`, where GFM cuts the extra +cells. Cutting the cells breaks Goal 7, and building any table GFM does not, such as a wider one, +breaks Goal 4; a refusal builds no table. ## The HTML dialect diff --git a/todo.md b/todo.md index 2f50900..16c83fb 100644 --- a/todo.md +++ b/todo.md @@ -50,7 +50,7 @@ | 68 | 0.3.0 | | **Carry a non-text inline node holding `content` or `text`, a block holding `text`, and a leaf block holding `content`.** | 3 | 3 | 4 | 4 | 7 | 1 | 18.2 | | 75 | 0.3.0 | | **Make the generated-markdown property write block carries as `adf:` fences, canonical and hostile.** | 2 | 2 | 4 | 3 | 7 | 1 | 17.5 | | 81 | 0.3.0 | | **Fail the gate unless the README's error tables list exactly the codes `ConvertErrorCode` holds.** | 1 | 2 | 2 | 5 | 5 | 3 | 16.3 | -| 112 | 0.3.0 | | **Read a GFM pipe table's short rows padded with empty cells, its body rows holding no pipe, and a one-column table without leading pipes in `portableMarkdownToAdf`.** | 3 | 3 | 5 | 6 | 6 | 4, 7 | 16.3 | +| 112 | 0.3.0 | | **Pad a GFM pipe table's short rows with empty cells, read its body rows holding no pipe, and read a one-column table without leading pipes in `portableMarkdownToAdf`.** | 3 | 3 | 5 | 6 | 6 | 4 | 16.3 | | 46 | 0.3.0 | | **Publish the bundle size in the README, failing the release pipeline when it drifts.** | 2 | 4 | 3 | 5 | 5 | 3, 8 | 14.8 | | 72 | 0.3.0 | decision | **Re-create `gitea.larvit.se/larvit/adf-codec` as a read-only pull mirror of GitHub, its issues and Actions off and its description pointing at GitHub.** | 2 | 1 | 1 | 3 | 6 | 3 | 13.1 | | 107 | 0.3.0 | decision | **Spell the block carry's JSON so its length stays linear in the node's JSON.** | 4 | 5 | 7 | 3 | 5 | 1 | 10.8 | @@ -273,14 +273,14 @@ and hostile. Found by the technical-principles audit, 2026-10-04. leaves the README's tables a false contract under a green gate. Assert that the tables list exactly the union. Found by the technical-principles audit of item 78, 2026-10-05. -### 112. Read a GFM pipe table's short rows padded with empty cells, its body rows holding no pipe, and a one-column table without leading pipes in `portableMarkdownToAdf`. +### 112. Pad a GFM pipe table's short rows with empty cells, read its body rows holding no pipe, and read a one-column table without leading pipes in `portableMarkdownToAdf`. GFM pads a short row with empty cells, reads a line holding no `|` after a table as a row, and reads `a |` over `--- |` as a one-column table. `portableMarkdownToAdf` refuses a short row as `malformed-pipe-table`, ends the table at a line holding no `|`, and reads the one-column shape as a paragraph. A long row stays refused (`docs/decisions.md` §The portable reader refuses what GFM's -reading would drop), so the README's pipe-table guarantee keeps naming it and drops the rest. The -one-column shape needs `isBareDelimiterRow` in the writer's escaping to cover it too. +reading would drop), so the README's pipe-table guarantee keeps the long row for both readers, and +the short row and the line holding no `|` for `losslessMarkdownToAdf` alone. The one-column shape needs `isBareDelimiterRow` in the writer's escaping to cover it too. ### 46. Publish the bundle size in the README, failing the release pipeline when it drifts.