// src/handle.ts handleMark.peek = peekMark; var constructsWithoutHighlightMark = [ "autolink", "destinationLiteral", "destinationRaw", "reference", "titleQuote", "titleApostrophe" ]; var highlightMarkFromMarkdown = { canContainEols: ["highlight"], enter: { highlight: enterHighlight }, exit: { highlight: exitHighlight } }; function enterHighlight(token) { this.enter({ type: "highlight", children: [] }, token); } function exitHighlight(token) { this.exit(token); } var highlightMarkToMarkdown = { unsafe: [ { character: "=", inConstruct: "phrasing", notInConstruct: constructsWithoutHighlightMark } ], handlers: { highlight: handleMark } }; function handleMark(node, _, state, info) { const marker = "="; const tracker = state.createTracker(info); const exit = state.enter("highlight"); let value = tracker.move(marker + marker); value += tracker.move( //@ts-expect-error ignore error state.containerPhrasing(node, { before: value, after: marker, ...tracker.current() }) ); value += tracker.move(marker + marker); exit(); return value; } function peekMark() { return "="; } export { highlightMarkFromMarkdown, highlightMarkToMarkdown };