Files
echo-nexus/node_modules/mdast-util-highlight-mark/lib/index.js
T

56 lines
1.2 KiB
JavaScript

// 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
};