UNPKG

litvis-integration-mume

Version:

Enables litvis functionality in mume and markdown-preview-enhanced

63 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTripleHatReference = void 0; const block_info_1 = require("block-info"); const html_entities_1 = require("html-entities"); const delimiters = [["^^^", "^^^"]]; const useTripleHatReference = (md) => { md.inline.ruler.before("escape", "litvis:triple-hat-reference", (state, silent) => { let openTag = null; let closeTag = null; for (const tagPair of delimiters) { if (state.src.startsWith(tagPair[0], state.pos)) { [openTag, closeTag] = tagPair; break; } } if (!openTag || !closeTag) { return false; // not triple hat reference } let content = null; let end = -1; let i = state.pos + openTag.length; while (i < state.src.length) { if (state.src.startsWith(closeTag, i)) { end = i; break; } else if (state.src[i] === "\\") { i += 1; } i += 1; } if (end >= 0) { content = state.src.slice(state.pos + openTag.length, end); } else { return false; } const trimmedContent = content.trim(); if (content.length && trimmedContent.length === content.length && !silent) { const token = state.push("litvis:triple-hat-reference", "litvis:triple-hat-reference", 0); token.content = trimmedContent; token.meta = { openTag, closeTag, }; state.pos += content.length + openTag.length + closeTag.length; return true; } else { return false; } }); md.renderer.rules["litvis:triple-hat-reference"] = (tokens, idx) => { const token = tokens[idx]; const parsedInfo = (0, block_info_1.parseBlockInfo)(token.content); return `<span data-role="litvis:triple-hat-reference" data-info="${(0, html_entities_1.encode)(token.content)}" data-parsedInfo="${(0, html_entities_1.encode)(JSON.stringify(parsedInfo))}"><code>${(0, html_entities_1.encode)(token.meta.openTag + token.content + token.meta.closeTag)}</code></span>`; }; }; exports.useTripleHatReference = useTripleHatReference; //# sourceMappingURL=useTripleHatReference.js.map