From 5107c9506bae54982dc886af9d02c4dbea5fc7f5 Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Wed, 28 Oct 2026 17:39:28 +0100 Subject: [PATCH] =?UTF-8?q?Answer=20principles=20round=202:=200=20?= =?UTF-8?q?=F0=9F=94=B4,=200=20=F0=9F=9F=A1=20(0=20misread);=20record=20ta?= =?UTF-8?q?kes=20the=20SharedScan=20it=20reads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/markdown/inline-content.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/markdown/inline-content.ts b/src/markdown/inline-content.ts index 7bb6b4b..128f260 100644 --- a/src/markdown/inline-content.ts +++ b/src/markdown/inline-content.ts @@ -142,7 +142,7 @@ export function readLineBack(line: string, container: LineContainer, claims: Cla return { faulted: !scanInline(scan).ok, reading } } -function record({ shared: { reading } }: Scan, entry: ReadingEntry): void { +function record({ reading }: SharedScan, entry: ReadingEntry): void { if (reading === undefined) return if (entry.kind === 'emphasis') reading.emphasis.set(entry.at, { closer: entry.closer, width: entry.width }) else if (entry.kind === 'highlights') reading.highlights.set(entry.at, entry.closer) @@ -183,7 +183,7 @@ function readToken(scan: Scan, inline: InlineSource, index: number, token: Inlin return closeBracket(scan, index) case 'code-span': flush(scan, false) - record(scan, { at: scan.offset + index, kind: 'codeSpans' }) + record(scan.shared, { at: scan.offset + index, kind: 'codeSpans' }) pushNode(scan, { marks: [{ type: 'code' }], text: codeSpanText(scan.source.slice(index + token.opener, end - token.opener)), type: 'text' }) return success(end) case 'delimiter-run': @@ -429,7 +429,7 @@ function closeBracket(scan: Scan, index: number): Result { if (!open.image) scan.linkOpenersFrom = scan.brackets.length // Before `linkPieces`' own-marks guard: brackets that go literal mark nothing, so a carry inside them is no error. if (!open.image && holdsLink(inner)) return success(unopened(scan, open, index)) - record(scan, { at: scan.offset + open.start - 1, kind: 'links' }) + record(scan.shared, { at: scan.offset + open.start - 1, kind: 'links' }) const closed = open.image ? imagePieces(scan, inner, target.definition()) : linkPieces(scan, inner, target.definition()) if (!closed.ok) return closed scan.pieces.length = open.index @@ -521,11 +521,11 @@ function markedNodes(pieces: readonly Piece[], scan: Scan, highlights: boolean): const nodes = pieces.map(pieceNodes) const runs = delimiterRuns(pieces) const pairings = matchEmphasis(runs) - for (const { closer, closerOffset, opener, openerOffset, used } of pairings) record(scan, { at: opener.offset + openerOffset, closer: closer.offset + closerOffset, kind: 'emphasis', width: used }) + for (const { closer, closerOffset, opener, openerOffset, used } of pairings) record(scan.shared, { at: opener.offset + openerOffset, closer: closer.offset + closerOffset, kind: 'emphasis', width: used }) writeUnpaired(nodes, runs, pairings) if (!markPairings(pieces, nodes, pairings)) return failure('unsupported-node-shape', ownMarksInMark, scan.shared.path) const paired = highlights ? pairedHighlights(pieces, nodes) : [] - for (const { closerOffset, openerOffset } of paired) record(scan, { at: openerOffset, closer: closerOffset, kind: 'highlights' }) + for (const { closerOffset, openerOffset } of paired) record(scan.shared, { at: openerOffset, closer: closerOffset, kind: 'highlights' }) markHighlights(pieces, nodes, paired) return success(nodes) }