From 1f5c6567c22e90c443b6cc0057b5fd32f8ae8b0a Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Wed, 4 Nov 2026 19:42:42 +0100 Subject: [PATCH] =?UTF-8?q?Answer=20stability=20round=201:=200=20?= =?UTF-8?q?=F0=9F=94=B4,=202=20=F0=9F=9F=A1=20(0=20misread);=20name=20the?= =?UTF-8?q?=20violation=20in=20the=20card=20refusal=20and=20record=20that?= =?UTF-8?q?=20htmlToAdf=20still=20reads=20a=20carried=20linked=20card?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/decisions.md | 2 +- src/html/emit/inline.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/decisions.md b/docs/decisions.md index 73e42d3..d52b483 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -444,7 +444,7 @@ text where it has one, so both stay. A card showing only its name keeps its URL 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. Recorded 2026-10-24 without a panel of its own: it puts the second panel's `` around the text a card shows. +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. 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/src/html/emit/inline.ts b/src/html/emit/inline.ts index 96c4a39..6704faf 100644 --- a/src/html/emit/inline.ts +++ b/src/html/emit/inline.ts @@ -13,7 +13,7 @@ export function inlineHtml(nodes: readonly AdfNode[], path: ConvertErrorPath): R let afterPlainText = false for (const [index, node] of nodes.entries()) { if (node.type === 'inlineCard' && nodeMarks(node).some(({ type }) => type === 'link')) { - return failure('unsupported-node-shape', 'An inlineCard takes no link mark in ADF.', [...path, 'content', index]) + return failure('unsupported-node-shape', 'an inlineCard takes no link mark: this one holds one', [...path, 'content', index]) } // Two unmarked text nodes side by side read back as one, so the second rides the carry. const written: string | undefined = afterPlainText && isUnmarkedSpellableText(node) ? undefined : tryInlineNode(node)