Answer stability round 2: the carries comment names the carries it decides

This commit is contained in:
2026-10-04 21:09:51 +02:00
parent a0e4247cfd
commit bb83888d8f
+2 -2
View File
@@ -217,7 +217,7 @@ function nodePath(context: InlineContext, index: number): ConvertErrorPath {
return [...context.path, 'content', index] return [...context.path, 'content', index]
} }
// Whatever the node decides alone is decided here, so a line holding many such nodes is emitted once. // Decides the text-node and slot-fault carries up front, so a line holding many of them is emitted once.
function carries(node: AdfNode, carried: ReadonlySet<number>, index: number): boolean { function carries(node: AdfNode, carried: ReadonlySet<number>, index: number): boolean {
if (carried.has(index)) return true if (carried.has(index)) return true
if (node.type === 'text') return !isBareText(node) || typeof node.text !== 'string' || node.text === '' if (node.type === 'text') return !isBareText(node) || typeof node.text !== 'string' || node.text === ''
@@ -263,7 +263,7 @@ function emitInlineDirective(node: AdfNode, model: InlineNodeModel, index: numbe
return success({ segments: [syntax(spellInlineDirectiveOpener(node.type)), ...content, syntax(`]${attributes}`)] }) return success({ segments: [syntax(spellInlineDirectiveOpener(node.type)), ...content, syntax(`]${attributes}`)] })
} }
// spec/flavour.md, Inline nodes: CommonMark reads a carriage return as a line ending, and a null character as U+FFFD. // spec/flavour.md, Text CommonMark cannot hold plainly.
function emitText(node: AdfNode, context: InlineContext, index: number): Emission { function emitText(node: AdfNode, context: InlineContext, index: number): Emission {
if (!isBareText(node) || typeof node.text !== 'string' || node.text === '') return { carry: { first: index, last: index } } if (!isBareText(node) || typeof node.text !== 'string' || node.text === '') return { carry: { first: index, last: index } }
const escaping: InlineEscaping = context.bracketed ? 'bracketed' : 'backslash' const escaping: InlineEscaping = context.bracketed ? 'bracketed' : 'backslash'