UNPKG

mume-with-litvis

Version:

Fork of mume with added http://litvis.org/

75 lines 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const parse_math_1 = require("../parse-math"); exports.default = (md, config) => { // @ts-ignore md.inline.ruler.before("escape", "math", (state, silent) => { if (config.mathRenderingOption === "None") { return false; } let openTag = null; let closeTag = null; let displayMode = true; const { mathBlockDelimiters: blockDelimiters, mathInlineDelimiters: inlineDelimiters, } = config; for (const tagPair of blockDelimiters) { if (state.src.startsWith(tagPair[0], state.pos)) { [openTag, closeTag] = tagPair; break; } } if (!openTag) { for (const tagPair of inlineDelimiters) { if (state.src.startsWith(tagPair[0], state.pos)) { [openTag, closeTag] = tagPair; displayMode = false; break; } } } if (!openTag) { return false; // not math } 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; } if (content && !silent) { const token = state.push("math"); token.content = content.trim(); token.openTag = openTag; token.closeTag = closeTag; token.displayMode = displayMode; state.pos += content.length + openTag.length + closeTag.length; return true; } else { return false; } }); md.renderer.rules.math = (tokens, idx) => { const content = tokens[idx] ? tokens[idx].content : null; return (0, parse_math_1.default)({ content, openTag: tokens[idx].openTag, closeTag: tokens[idx].closeTag, renderingOption: config.mathRenderingOption, displayMode: tokens[idx].displayMode, }); }; }; //# sourceMappingURL=math.js.map