diff --git a/corpus/round-trip/inline-nodes/marks.json b/corpus/round-trip/inline-nodes/marks.json index a07f097..fb563d3 100644 --- a/corpus/round-trip/inline-nodes/marks.json +++ b/corpus/round-trip/inline-nodes/marks.json @@ -11,7 +11,19 @@ "type": "textColor" } ], - "text": "Overdue", + "text": "Over", + "type": "text" + }, + { + "marks": [ + { + "attrs": { + "color": "#a54800" + }, + "type": "textColor" + } + ], + "text": "due", "type": "text" }, { @@ -40,9 +52,21 @@ "type": "underline" } ], - "text": "signed", + "text": "signed by ", "type": "text" }, + { + "attrs": { + "id": "01a032c3-7a7c-775f-a730-2d79351338b4", + "text": "@Mikael" + }, + "marks": [ + { + "type": "underline" + } + ], + "type": "mention" + }, { "text": " on the 2", "type": "text" diff --git a/corpus/round-trip/inline-nodes/marks.md b/corpus/round-trip/inline-nodes/marks.md index f563cf0..c69b440 100644 --- a/corpus/round-trip/inline-nodes/marks.md +++ b/corpus/round-trip/inline-nodes/marks.md @@ -1,3 +1,3 @@ -:textColor[Overdue]{color="#ae2e24"} since the H:subsup[2]{type=sub}O test, :underline[signed] on the 2:subsup[nd]{type=sup} of May. +:textColor[Over]{color="#ae2e24"}:textColor[due]{color="#a54800"} since the H:subsup[2]{type=sub}O test, :underline[signed by :mention[@Mikael]{id=01a032c3-7a7c-775f-a730-2d79351338b4}] on the 2:subsup[nd]{type=sup} of May. :border[:mediaInline{collection=contentId-98237 id=01a032c3-7a90-70c9-88f6-c60f710eda07}]{color="#091e42" size=2} diff --git a/corpus/round-trip/inline-nodes/text-whitespace.json b/corpus/round-trip/inline-nodes/text-whitespace.json index 081a230..f6d9a67 100644 --- a/corpus/round-trip/inline-nodes/text-whitespace.json +++ b/corpus/round-trip/inline-nodes/text-whitespace.json @@ -27,6 +27,38 @@ ], "type": "paragraph" }, + { + "content": [ + { + "text": "Space before the break ", + "type": "text" + }, + { + "type": "hardBreak" + }, + { + "text": "survives.", + "type": "text" + } + ], + "type": "paragraph" + }, + { + "content": [ + { + "text": "Space after the break", + "type": "text" + }, + { + "type": "hardBreak" + }, + { + "text": " survives too.", + "type": "text" + } + ], + "type": "paragraph" + }, { "content": [ { diff --git a/corpus/round-trip/inline-nodes/text-whitespace.md b/corpus/round-trip/inline-nodes/text-whitespace.md index 35408a1..b6d0163 100644 --- a/corpus/round-trip/inline-nodes/text-whitespace.md +++ b/corpus/round-trip/inline-nodes/text-whitespace.md @@ -4,4 +4,10 @@ Trailing space held:text{text=" "} :text{text="\t"}Tabbed at the block edge. +Space before the break:text{text=" "}\ +survives. + +Space after the break\ +:text{text=" "}survives too. + Kept _:text{text=" "}inside:text{text=" "}_, exactly. diff --git a/todo.md b/todo.md index 6999e9a..b3a4132 100644 --- a/todo.md +++ b/todo.md @@ -45,7 +45,7 @@ detail is settled at its own milestone. pick here. - [x] **1d1 — The CommonMark subset**: blockquote, bulletList, codeBlock, heading, orderedList, paragraph, rule, listItem, hardBreak, text, code spans, and the `code`, `em`, `link`, - `strike` and `strong` marks — one mark per text node; nesting is 1d5's. + `strike` and `strong` marks — one mark per text node; nesting is 1d3's. - [x] **1d2 — Block nodes**: panel, expand/nestedExpand, the media family and the CommonMark image shape, both table forms, task and decision lists, layout, extensions, syncBlock — with the reserved `marks` attribute and the fence lengths nesting forces. @@ -54,10 +54,12 @@ detail is settled at its own milestone. `:text{text="…"}` whitespace spelling. - [ ] **1d4 — Opaque carry** (§3): an unknown node in both positions, the reserved `adf` info string, and the `codeBlock` whose language is `adf`. - - [ ] **1d5 — Carve-outs and combinations**: the three carve-outs and their escapes, mark - nesting order and the runs a carry breaks, attribute canonicalization, documents - combining nodes rather than isolating one, and a paragraph line inside a container body - shaped like a closing fence (`:::`, `::: x`). + - [ ] **1d5 — Carve-outs and combinations**: the three carve-outs and their escapes, mark runs — + the longest-run rule, attributes included — and the runs a carry breaks, a mark spelling + that cannot open where it sits (`un**-real**istic`; the spec owes the carry a trigger), + attribute canonicalization, a pipe cell's whitespace edges and `\u007c` for a `|` inside a + quoted attribute value, documents combining nodes rather than isolating one, and a paragraph + line inside a container body shaped like a closing fence (`:::`, `::: x`). - [ ] **1d6 — Input normalization**: one-way markdown→ADF fixtures, not pairs — setext headings, indented code, loose lists, `*`/`+` bullets, entity references, soft wraps. - [ ] **1d7 — Error input**: also one-way, a markdown input per named error, asserting only