diff --git a/CHANGELOG.md b/CHANGELOG.md index 06f1af4..2780df7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ `localId` as `data-local-id`. Every other node is an element of class `adf-carry` holding the node's JSON in `data-adf` and showing its content, links included. Every URL is written as the ADF holds it, `javascript:` included: sanitize HTML from an author you do not trust before - showing it. It refuses an inline card a link marks, as `unsupported-node-shape`: Atlassian's schema gives a + showing it. `adfToHtml` refuses an inline card a link marks, as `unsupported-node-shape`: Atlassian's schema gives a card no link mark, and HTML nests no link in a link. - `htmlToAdf` reads `adfToHtml`'s HTML back to the document it came from, a carry element from its `data-adf`. It reads that HTML as a browser's `innerHTML` writes it too (a raw `"` in text, diff --git a/README.md b/README.md index 4cb4cc2..99a5371 100644 --- a/README.md +++ b/README.md @@ -526,7 +526,7 @@ content. No stylesheet ships. The complete dialect: | `rule` | `
`, ``, ``, the first mark outermost |
| an attribute its type holds that its element does not write, such as `localId`, on a paragraph, heading, quote, list, list item, code block, rule, emoji, mention, status, date or card | `data-*` named as HTML's `dataset` names it: `` |
-| any other node, or a node holding what its element cannot | `
its content
`, a `` inline |
+| any other node, or a node holding what its element cannot, except an inline card a link marks, which is refused | `its content
`, a `` inline |
- Every URL is written as the ADF holds it, `javascript:` included: a link's, an image's, a
card's, and a carried link's in the carry element. Sanitize the HTML before showing a document from
diff --git a/docs/decisions.md b/docs/decisions.md
index d52b483..c7a20d0 100644
--- a/docs/decisions.md
+++ b/docs/decisions.md
@@ -441,10 +441,15 @@ it joins the second panel's `` to that portable spelling.
Inside a carry element, a card a link marks links to the link's target, and shows its own URL as its
text where it has one, so both stay. A card showing only its name keeps its URL in `data-adf` alone.
-Atlassian's schema gives no card a link mark, so only a hand-built document meets this, and
-`adfToHtml` refuses such a card among the inline nodes it writes as `unsupported-node-shape`: no
-element holds both its link and the card's own. Inside a carried block it shows as above, since a
-carried node's JSON is not checked, and `htmlToAdf` still reads a carry element holding one, as it checks no carried JSON against the schema. Recorded 2026-10-24 without a panel of its own: it puts the second panel's `` around the text a card shows.
+Recorded 2026-10-24 without a panel of its own: it puts the second panel's `` around the text a
+card shows.
+
+Atlassian's schema gives no card a link mark, so only a hand-built document holds one. HTML nests no
+`` in an ``, so no element can hold both the link's target and the card's URL: `adfToHtml`
+refuses such a card as `unsupported-node-shape` wherever it writes the card as its own element. The
+maintainer chose this on 2026-11-04 over a new spelling. Inside a carry element the card shows as
+above, since `adfToHtml` checks no carried node's JSON against the schema, and `htmlToAdf` still
+reads a carry element holding one for the same reason.
A fifth panel (2026-11-04, three readers in the same roles, then four more for what the first three
split on) was asked how to write a mention, emoji, status, date and inline card, which until then
diff --git a/spec/html.md b/spec/html.md
index 5a8b086..e72d9c5 100644
--- a/spec/html.md
+++ b/spec/html.md
@@ -94,7 +94,7 @@ later release writes it as its own element.
- A hard break is `
`, and so is a line feed in text outside a `