mirror of
https://github.com/larvit/adf-codec.git
synced 2026-11-12 11:48:29 +01:00
Decide that the portable reader refuses what GFM's reading would drop
This commit is contained in:
@@ -33,6 +33,7 @@ In `docs/decisions.md`:
|
||||
- A block a task item cannot hold stands after its task list
|
||||
- A callout title keeps its link targets
|
||||
- The portable flavour's spellings
|
||||
- The portable reader refuses what GFM's reading would drop
|
||||
- The HTML dialect
|
||||
- No runtime dependencies
|
||||
- Standards ship as data
|
||||
|
||||
@@ -308,6 +308,16 @@ spellings, raw HTML (`<details>`, `<mark>`), MkDocs `!!!` and the `:::` admoniti
|
||||
footnotes, definition lists, wikilinks, embeds, tags, comments, TOC tokens, spoilers, task states
|
||||
past `[x]`/`[ ]`, and lifting bare URLs, `@name`, `:shortcode:` or ISO dates into nodes.
|
||||
|
||||
## 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.
|
||||
|
||||
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.
|
||||
|
||||
## The HTML dialect
|
||||
|
||||
2026-08-23, the maintainer. Goals 6 and 8. Valid while HTML output is read by consumers styling it
|
||||
|
||||
@@ -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 | question | **Read a GFM pipe table's ragged rows, 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 | | **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 |
|
||||
| 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,15 +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 ragged rows, its body rows holding no pipe, and a one-column table without leading pipes in `portableMarkdownToAdf`.
|
||||
### 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`.
|
||||
|
||||
GFM pads a short row with empty cells, cuts a long one to the header's count, reads a line holding
|
||||
no `|` after a table as a row, and reads `a |` over `--- |` as a one-column table.
|
||||
`portableMarkdownToAdf` refuses a ragged row as `malformed-pipe-table`, ends the table at a line
|
||||
holding no `|`, and reads the one-column shape as a paragraph; the README's pipe-table guarantee
|
||||
names the first two. Cutting a long row drops content (Goal 7) where Goal 4 asks for GFM's reading:
|
||||
which wins is the maintainer's. The one-column shape needs `isBareDelimiterRow` in the writer's
|
||||
escaping to cover it too.
|
||||
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.
|
||||
|
||||
### 46. Publish the bundle size in the README, failing the release pipeline when it drifts.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user