Merge pull request 'Corpus 1d3: the inline-node and mark pairs' (#8) from corpus-inline-nodes into main
CI / gate (push) Successful in 4s

This commit was merged in pull request #8.
This commit is contained in:
2026-08-24 14:40:58 +02:00
23 changed files with 591 additions and 5 deletions
@@ -0,0 +1,53 @@
{
"content": [
{
"content": [
{
"attrs": {
"color": "yellow",
"text": "In review"
},
"type": "status"
},
{
"text": " carries the text in the slot.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"attrs": {
"color": "neutral"
},
"type": "status"
},
{
"text": " carries no text attribute.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"attrs": {
"color": "neutral",
"text": ""
},
"type": "status"
},
{
"text": " carries the empty string.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1,5 @@
:status[In review]{color=yellow} carries the text in the slot.
:status{color=neutral} carries no text attribute.
:status[]{color=neutral} carries the empty string.
+36
View File
@@ -0,0 +1,36 @@
{
"content": [
{
"content": [
{
"text": "Due ",
"type": "text"
},
{
"attrs": {
"timestamp": "1756080000000"
},
"type": "date"
},
{
"text": ", reviewed ",
"type": "text"
},
{
"attrs": {
"localId": "01a033ab-781c-7f79-9c8a-fb63356c1cad",
"timestamp": "1735689600000"
},
"type": "date"
},
{
"text": ".",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
+1
View File
@@ -0,0 +1 @@
Due :date{timestamp=1756080000000}, reviewed :date{localId=01a033ab-781c-7f79-9c8a-fb63356c1cad timestamp=1735689600000}.
+28
View File
@@ -0,0 +1,28 @@
{
"content": [
{
"content": [
{
"text": "Shipped ",
"type": "text"
},
{
"attrs": {
"id": "1f389",
"localId": "01a033ad-f00e-7acb-a009-37ddd25d7949",
"shortName": ":tada:",
"text": "🎉"
},
"type": "emoji"
},
{
"text": " on Friday.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
+1
View File
@@ -0,0 +1 @@
Shipped :emoji[🎉]{id=1f389 localId=01a033ad-f00e-7acb-a009-37ddd25d7949 shortName=":tada:"} on Friday.
@@ -0,0 +1,41 @@
{
"content": [
{
"content": [
{
"text": "Tracking ",
"type": "text"
},
{
"attrs": {
"url": "https://example.com/browse/ABC-123"
},
"type": "inlineCard"
},
{
"text": " this week.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"attrs": {
"data": {
"@type": "Link",
"name": "Torque spec",
"url": "https://example.com/torque"
},
"localId": "01a033ad-1fa5-76fa-aad0-2e56a17d76aa"
},
"type": "inlineCard"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1,3 @@
Tracking :inlineCard{url="https://example.com/browse/ABC-123"} this week.
:inlineCard{data="{\"@type\":\"Link\",\"name\":\"Torque spec\",\"url\":\"https://example.com/torque\"}" localId=01a033ad-1fa5-76fa-aad0-2e56a17d76aa}
@@ -0,0 +1,27 @@
{
"content": [
{
"content": [
{
"attrs": {
"id": "01a032c3-7a7c-775f-a730-2d79351338b4",
"text": "@Mikael"
},
"marks": [
{
"type": "strong"
}
],
"type": "mention"
},
{
"text": " owns the rebuild.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1 @@
**:mention[@Mikael]{id=01a032c3-7a7c-775f-a730-2d79351338b4}** owns the rebuild.
@@ -0,0 +1,48 @@
{
"content": [
{
"content": [
{
"marks": [
{
"type": "em"
},
{
"type": "underline"
}
],
"text": "Rewired",
"type": "text"
},
{
"text": " at the mains.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"marks": [
{
"type": "underline"
},
{
"type": "em"
}
],
"text": "Rewound",
"type": "text"
},
{
"text": " by hand.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1,3 @@
_:underline[Rewired]_ at the mains.
:underline[_Rewound_] by hand.
+117
View File
@@ -0,0 +1,117 @@
{
"content": [
{
"content": [
{
"marks": [
{
"attrs": {
"color": "#ae2e24"
},
"type": "textColor"
}
],
"text": "Over",
"type": "text"
},
{
"marks": [
{
"attrs": {
"color": "#a54800"
},
"type": "textColor"
}
],
"text": "due",
"type": "text"
},
{
"text": " since the H",
"type": "text"
},
{
"marks": [
{
"attrs": {
"type": "sub"
},
"type": "subsup"
}
],
"text": "2",
"type": "text"
},
{
"text": "O test, ",
"type": "text"
},
{
"marks": [
{
"type": "underline"
}
],
"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"
},
{
"marks": [
{
"attrs": {
"type": "sup"
},
"type": "subsup"
}
],
"text": "nd",
"type": "text"
},
{
"text": " of May.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"attrs": {
"collection": "contentId-98237",
"id": "01a032c3-7a90-70c9-88f6-c60f710eda07"
},
"marks": [
{
"attrs": {
"color": "#091e42",
"size": 2
},
"type": "border"
}
],
"type": "mediaInline"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
+3
View File
@@ -0,0 +1,3 @@
: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}
@@ -0,0 +1,55 @@
{
"content": [
{
"content": [
{
"text": "See ",
"type": "text"
},
{
"attrs": {
"alt": "Torque chart",
"collection": "contentId-98237",
"height": 24,
"id": "01a033ae-69a3-7411-b388-a37f9d103ded",
"type": "file",
"width": 24
},
"type": "mediaInline"
},
{
"text": " mid-sentence.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"text": "Or ",
"type": "text"
},
{
"attrs": {
"data": {
"fileName": "budget.pdf",
"fileSize": 18432
},
"localId": "01a033b1-b5a0-7a98-9e9c-48192bd30ac0",
"occurrenceKey": "01a033ab-bab8-74b0-9ec8-b3419b000189",
"type": "image"
},
"type": "mediaInline"
},
{
"text": " beside the text.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1,3 @@
See :mediaInline{alt="Torque chart" collection=contentId-98237 height=24 id=01a033ae-69a3-7411-b388-a37f9d103ded type=file width=24} mid-sentence.
Or :mediaInline{data="{\"fileName\":\"budget.pdf\",\"fileSize\":18432}" localId=01a033b1-b5a0-7a98-9e9c-48192bd30ac0 occurrenceKey=01a033ab-bab8-74b0-9ec8-b3419b000189 type=image} beside the text.
@@ -0,0 +1,29 @@
{
"content": [
{
"content": [
{
"text": "Ping ",
"type": "text"
},
{
"attrs": {
"accessLevel": "CONTAINER",
"id": "01a032c3-7a7c-775f-a730-2d79351338b4",
"localId": "01a033ad-ecb7-7530-aa1c-ff25031e96e2",
"text": "@Mikael",
"userType": "DEFAULT"
},
"type": "mention"
},
{
"text": " before merging.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1 @@
Ping :mention[@Mikael]{accessLevel=CONTAINER id=01a032c3-7a7c-775f-a730-2d79351338b4 localId=01a033ad-ecb7-7530-aa1c-ff25031e96e2 userType=DEFAULT} before merging.
@@ -0,0 +1,28 @@
{
"content": [
{
"content": [
{
"text": "The rebuild is ",
"type": "text"
},
{
"attrs": {
"color": "yellow",
"localId": "01a033a7-d68a-71a9-a58a-edf5757ad176",
"style": "bold",
"text": "In review"
},
"type": "status"
},
{
"text": " until Friday.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
+1
View File
@@ -0,0 +1 @@
The rebuild is :status[In review]{color=yellow localId=01a033a7-d68a-71a9-a58a-edf5757ad176 style=bold} until Friday.
@@ -0,0 +1,87 @@
{
"content": [
{
"content": [
{
"text": " Two leading spaces held, and one text node split\nover two lines.",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"text": "Trailing space held ",
"type": "text"
}
],
"type": "paragraph"
},
{
"content": [
{
"text": "\tTabbed at the block edge.",
"type": "text"
}
],
"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": [
{
"text": "Kept ",
"type": "text"
},
{
"marks": [
{
"type": "em"
}
],
"text": " inside ",
"type": "text"
},
{
"text": ", exactly.",
"type": "text"
}
],
"type": "paragraph"
}
],
"type": "doc",
"version": 1
}
@@ -0,0 +1,13 @@
:text{text=" "}Two leading spaces held, and one text node split:text{text="\n"}over two lines.
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.
+7 -5
View File
@@ -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