{"version":3,"sources":["jsdelivr-header.js","/npm/markdown-it-texmath@1.0.0/texmath.js"],"names":[],"mappings":"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","file":"/npm/markdown-it-texmath@1.0.0/texmath.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/markdown-it-texmath@1.0.0/texmath.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*---------------------------------------------------------------------------------------------\r\n *  Copyright (c) Stefan Goessner - 2017-22. All rights reserved.\r\n *  Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n'use strict';\r\n\r\nfunction escapeHTML(text) {\r\n    return text\r\n        .replace(/&/g, \"&amp;\")\r\n        .replace(/</g, \"&lt;\")\r\n        .replace(/>/g, \"&gt;\")\r\n        .replace(/\"/g, \"&quot;\")\r\n        .replace(/'/g, \"&#039;\");\r\n}\r\n\r\nfunction texmath(md, options) {\r\n    const delimiters = texmath.mergeDelimiters(options && options.delimiters);\r\n    const outerSpace = options && options.outerSpace || false;         // inline rules, effectively `dollars` require surrounding spaces, i.e ` $\\psi$ `, to be accepted as inline formulas. This is primarily a guard against misinterpreting single `$`'s in normal markdown text (relevant for inline math only. Default: `false`, for backwards compatibility).\r\n    const katexOptions = options && options.katexOptions || {};\r\n    katexOptions.throwOnError = katexOptions.throwOnError || false; \r\n    katexOptions.macros = katexOptions.macros || options && options.macros;  // ensure backwards compatibility\r\n\r\n    if (!texmath.katex) { // else ... deprecated `use` method was used ...\r\n        if (options && typeof options.engine === 'object') {\r\n            texmath.katex = options.engine;\r\n        }\r\n        else if (typeof module === \"object\")\r\n            texmath.katex = require('katex');\r\n        else  // artifical error object.\r\n            texmath.katex = { renderToString() { return 'No math renderer found.' } };\r\n    }\r\n\r\n    // inject inline rules to markdown-it\r\n    for (const rule of delimiters.inline) {\r\n        if (!!outerSpace && 'outerSpace' in rule) rule.outerSpace = true;\r\n        md.inline.ruler.before('escape', rule.name, texmath.inline(rule));  // ! important\r\n        md.renderer.rules[rule.name] = (tokens, idx) => rule.tmpl.replace(/\\$1/,texmath.render(tokens[idx].content,!!rule.displayMode,katexOptions));\r\n    }\r\n    // inject block rules to markdown-it\r\n    for (const rule of delimiters.block) {\r\n        md.block.ruler.before('fence', rule.name, texmath.block(rule));  // ! important for ```math delimiters\r\n        md.renderer.rules[rule.name] = (tokens, idx) => rule.tmpl.replace(/\\$2/,escapeHTML(tokens[idx].info))  // equation number .. ?\r\n                                                                 .replace(/\\$1/,texmath.render(tokens[idx].content,true,katexOptions));\r\n    }\r\n}\r\n\r\ntexmath.mergeDelimiters = function(delims) {\r\n    const delimsArr = Array.isArray(delims) ? delims \r\n                    : typeof delims === \"string\" ? [delims]\r\n                    : ['dollars'];\r\n    const delimiters = { inline:[], block:[]};  // target of merge process ...\r\n\r\n    for (const delim of delimsArr)  // merge them into delimiters ...\r\n        if (delim in texmath.rules) {\r\n            delimiters.inline.push(...texmath.rules[delim].inline);\r\n            delimiters.block.push(...texmath.rules[delim].block);\r\n        }\r\n\r\n    return delimiters;\r\n}\r\n\r\n// texmath.inline = (rule) => dollar;  // just for debugging/testing ..\r\n\r\ntexmath.inline = (rule) => \r\n    function(state, silent) {\r\n        const pos = state.pos;\r\n        const str = state.src;\r\n        const pre = str.startsWith(rule.tag, rule.rex.lastIndex = pos) && (!rule.pre || rule.pre(str, rule.outerSpace, pos));  // valid pre-condition ...\r\n        const match = pre && rule.rex.exec(str);\r\n        const res = !!match && pos < rule.rex.lastIndex && (!rule.post || rule.post(str, rule.outerSpace, rule.rex.lastIndex - 1));\r\n\r\n        if (res) { \r\n            if (!silent) {\r\n                const token = state.push(rule.name, 'math', 0);\r\n                token.content = match[1];\r\n                token.markup = rule.tag;\r\n            }\r\n            state.pos = rule.rex.lastIndex;\r\n        }\r\n        return res;\r\n    }\r\n\r\ntexmath.block = (rule) => \r\n    function block(state, begLine, endLine, silent) {\r\n        const pos = state.bMarks[begLine] + state.tShift[begLine];\r\n        const str = state.src;\r\n        const pre = str.startsWith(rule.tag, rule.rex.lastIndex = pos) && (!rule.pre || rule.pre(str, false, pos));  // valid pre-condition ....\r\n        const match = pre && rule.rex.exec(str);\r\n        const res = !!match\r\n                 && pos < rule.rex.lastIndex \r\n                 && (!rule.post || rule.post(str, false, rule.rex.lastIndex - 1));\r\n\r\n        if (res && !silent) {    // match and valid post-condition ...\r\n            const endpos = rule.rex.lastIndex - 1;\r\n            let curline;\r\n\r\n            for (curline = begLine; curline < endLine; curline++)\r\n                if (endpos >= state.bMarks[curline] + state.tShift[curline] && endpos <= state.eMarks[curline]) // line for end of block math found ...\r\n                    break;\r\n\r\n            // \"this will prevent lazy continuations from ever going past our end marker\"\r\n            // s. https://github.com/markdown-it/markdown-it-container/blob/master/index.js\r\n            const lineMax = state.lineMax;\r\n            const parentType = state.parentType;\r\n            state.lineMax = curline;\r\n            state.parentType = 'math';\r\n\r\n            if (parentType === 'blockquote') // remove all leading '>' inside multiline formula\r\n                match[1] = match[1].replace(/(\\n*?^(?:\\s*>)+)/gm,'');\r\n            // begin token\r\n            let token = state.push(rule.name, 'math', 0);  // 'math_block'\r\n            token.block = true;\r\n            token.tag = rule.tag;\r\n            token.markup = '';\r\n            token.content = match[1];\r\n            token.info = match[match.length-1];    // eq.no\r\n            token.map = [ begLine, curline+1 ];\r\n//            token.hidden = true;\r\n            // end token ... superfluous ...\r\n\r\n            state.parentType = parentType;\r\n            state.lineMax = lineMax;\r\n            state.line = curline+1;\r\n        }\r\n        return res;\r\n    }\r\n\r\ntexmath.render = function(tex,displayMode,options) {\r\n    options.displayMode = displayMode;\r\n    let res;\r\n    try {\r\n        res = texmath.katex.renderToString(tex, options);\r\n    }\r\n    catch(err) {\r\n        res = escapeHTML(`${tex}:${err.message}`)\r\n    }\r\n    return res;\r\n}\r\n\r\n// ! deprecated ... use options !\r\ntexmath.use = function(katex) {  // math renderer used ...\r\n    texmath.katex = katex;       // ... katex solely at current ...\r\n    return texmath;\r\n}\r\n\r\n/*\r\nfunction dollar(state, silent) {\r\n  var start, max, marker, matchStart, matchEnd, token,\r\n      pos = state.pos,\r\n      ch = state.src.charCodeAt(pos);\r\n\r\n  if (ch !== 0x24) { return false; }  // $\r\n\r\n  start = pos;\r\n  pos++;\r\n  max = state.posMax;\r\n\r\n  while (pos < max && state.src.charCodeAt(pos) === 0x24) { pos++; }\r\n\r\n  marker = state.src.slice(start, pos);\r\n\r\n  matchStart = matchEnd = pos;\r\n\r\n  while ((matchStart = state.src.indexOf('$', matchEnd)) !== -1) {\r\n    matchEnd = matchStart + 1;\r\n\r\n    while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x24) { matchEnd++; }\r\n\r\n    if (matchEnd - matchStart === marker.length) {\r\n      if (!silent) {\r\n        token         = state.push('math_inline', 'math', 0);\r\n        token.markup  = marker;\r\n        token.content = state.src.slice(pos, matchStart)\r\n                                 .replace(/[ \\n]+/g, ' ')\r\n                                 .trim();\r\n      }\r\n      state.pos = matchEnd;\r\n      return true;\r\n    }\r\n  }\r\n\r\n  if (!silent) { state.pending += marker; }\r\n  state.pos += marker.length;\r\n  return true;\r\n};\r\n*/\r\n\r\n// used for enable/disable math rendering by `markdown-it`\r\ntexmath.inlineRuleNames = ['math_inline','math_inline_double'];\r\ntexmath.blockRuleNames  = ['math_block','math_block_eqno'];\r\n\r\ntexmath.$_pre = (str,outerSpace,beg) => {\r\n    const prv = beg > 0 ? str[beg-1].charCodeAt(0) : false;\r\n    return outerSpace ? !prv || prv === 0x20           // space  (avoiding regex's for performance reasons)\r\n                      : !prv || prv !== 0x5c           // no backslash,\r\n                             && (prv < 0x30 || prv > 0x39); // no decimal digit .. before opening '$'\r\n}\r\ntexmath.$_post = (str,outerSpace,end) => {\r\n    const nxt = str[end+1] && str[end+1].charCodeAt(0);\r\n    return outerSpace ? !nxt || nxt === 0x20           // space  (avoiding regex's for performance reasons)\r\n                             || nxt === 0x2e           // '.'\r\n                             || nxt === 0x2c           // ','\r\n                             || nxt === 0x3b           // ';'\r\n                      : !nxt || nxt < 0x30 || nxt > 0x39;   // no decimal digit .. after closing '$'\r\n}\r\n\r\ntexmath.rules = {\r\n    brackets: {\r\n        inline: [ \r\n            {   name: 'math_inline',\r\n                rex: /\\\\\\((.+?)\\\\\\)/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '\\\\('\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /\\\\\\[(((?!\\\\\\]|\\\\\\[)[\\s\\S])+?)\\\\\\]\\s*?\\(([^)$\\r\\n]+?)\\)/gmy,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '\\\\['\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /\\\\\\[([\\s\\S]+?)\\\\\\]/gmy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '\\\\['\r\n            }\r\n        ]\r\n    },\r\n    doxygen: {\r\n        inline: [ \r\n            {   name: 'math_inline', \r\n                rex: /\\\\f\\$(.+?)\\\\f\\$/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '\\\\f$'\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /\\\\f\\[([^]+?)\\\\f\\]\\s*?\\(([^)\\s]+?)\\)/gmy,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '\\\\f['\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /\\\\f\\[([^]+?)\\\\f\\]/gmy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '\\\\f['\r\n            }\r\n        ]\r\n    },\r\n    gitlab: {\r\n        inline: [ \r\n            {   name: 'math_inline',\r\n                rex: /\\$`(.+?)`\\$/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '$`'\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /`{3}math\\s*([^`]+?)\\s*?`{3}\\s*\\(([^)\\r\\n]+?)\\)/gm,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '```math'\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /`{3}math\\s*([^`]*?)\\s*`{3}/gm,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '```math'\r\n            }\r\n        ]\r\n    },\r\n    julia: {\r\n        inline: [ \r\n            {   name: 'math_inline', \r\n                rex: /`{2}([^`]+?)`{2}/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '``'\r\n            },\r\n            {   name: 'math_inline',\r\n                rex: /\\$((?:\\S?)|(?:\\S.*?\\S))\\$/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '$',\r\n                spaceEnclosed: false,\r\n                pre: texmath.$_pre,\r\n                post: texmath.$_post,\r\n\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /`{3}math\\s+?([^`]+?)\\s+?`{3}\\s*?\\(([^)$\\r\\n]+?)\\)/gmy,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '```math'\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /`{3}math\\s+?([^`]+?)\\s+?`{3}/gmy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '```math'\r\n            }\r\n        ]\r\n    },\r\n    kramdown: {\r\n        inline: [ \r\n            {   name: 'math_inline', \r\n                rex: /\\${2}(.+?)\\${2}/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '$$'\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /\\${2}([^$]+?)\\${2}\\s*?\\(([^)\\s]+?)\\)/gmy,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '$$'\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /\\${2}([^$]+?)\\${2}/gmy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '$$'\r\n            }\r\n        ]\r\n    },\r\n    beg_end: {\r\n        inline: [],\r\n        block: [\r\n            {\r\n                name: \"math_block\",\r\n                rex: /(\\\\(?:begin)\\{([a-z]+)\\}[\\s\\S]+?\\\\(?:end)\\{\\2\\})/gmy, // regexp to match \\begin{...}...\\end{...} environment.\r\n                tmpl: \"<section><eqn>$1</eqn></section>\",\r\n                tag: \"\\\\\"\r\n            }\r\n        ]\r\n    },\r\n    dollars: {\r\n        inline: [\r\n            {   name: 'math_inline_double',\r\n                rex: /\\${2}([^$]*?[^\\\\])\\${2}/gy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '$$',\r\n                displayMode: true,\r\n                pre: texmath.$_pre,\r\n                post: texmath.$_post\r\n            },\r\n            {   name: 'math_inline',\r\n                rex: /\\$((?:[^\\s\\\\])|(?:\\S.*?[^\\s\\\\]))\\$/gy,\r\n                tmpl: '<eq>$1</eq>',\r\n                tag: '$',\r\n                outerSpace: false,\r\n                pre: texmath.$_pre,\r\n                post: texmath.$_post\r\n            }\r\n        ],\r\n        block: [\r\n            {   name: 'math_block_eqno',\r\n                rex: /\\${2}([^$]*?[^\\\\])\\${2}\\s*?\\(([^)\\s]+?)\\)/gmy,\r\n                tmpl: '<section class=\"eqno\"><eqn>$1</eqn><span>($2)</span></section>',\r\n                tag: '$$'\r\n            },\r\n            {   name: 'math_block',\r\n                rex: /\\${2}([^$]*?[^\\\\])\\${2}/gmy,\r\n                tmpl: '<section><eqn>$1</eqn></section>',\r\n                tag: '$$'\r\n            }\r\n        ]\r\n    }\r\n};\r\n\r\nif (typeof module === \"object\" && module.exports)\r\n   module.exports = texmath;\r\n"]}