UNPKG

mathpix-markdown-it

Version:

Mathpix-markdown-it is an open source implementation of the mathpix-markdown spec written in Typescript. It relies on the following open source libraries: MathJax v3 (to render math with SVGs), markdown-it (for standard Markdown parsing)

246 lines 13.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reFootNoteText = exports.reFootNoteMark = exports.reOpenTagFootnotetextNumbered = exports.reOpenTagFootnotetextG = exports.reOpenTagFootnotetext = exports.reOpenTagFootnoteNumbered = exports.reOpenTagFootnoteG = exports.reOpenTagFootnote = exports.reFootNote = exports.closeTagTabular = exports.openTagTabular = exports.reMultiRow = exports.reMultiRowWithVPos = exports.reAddContentsLineG = exports.reAddContentsLine = exports.reSetCounterG = exports.reSetCounter = exports.defQED = exports.reNewCommandQedSymbolG = exports.reNewCommandQedSymbol = exports.defTheoremStyle = exports.reTheoremStyleG = exports.reTheoremStyle = exports.reNewTheoremUnNumbered = exports.reNewTheoremNumbered2 = exports.reNewTheoremNumbered = exports.reNewTheorem = exports.reNewTheoremUnNumberedInit = exports.reNewTheoremInit = exports.reNewTheoremG = exports.openTagProof = exports.openTagDescription = exports.openTag = exports.labelTagG = exports.labelTag = exports.closeTagSpan = exports.reSeparatingSpanG = exports.reSeparatingSpan = exports.reSpanG = exports.reSpan = exports.markerCloseTagSpan = exports.markerBeginTagSpan = exports.reOpenTagSmiles = exports.open_tag_smiles = exports.mathMLInlineRegex = exports.validMathMLRegex = exports.closeTagMML = exports.openTagMML = exports.attribute = exports.attr_value = void 0; exports.INLINE_ELEMENT_TOKENS = exports.CLOSING_STYLE_TOKENS = exports.OPENING_STYLE_TOKENS = exports.renderOptionsDef = exports.codeHighlightDef = exports.mathTokenTypes = exports.terminatedRules = exports.mdSeparatorsDef = exports.csvSeparatorsDef = exports.tsvSeparatorsDef = exports.mathEnvironments = exports.latexEnvironments = exports.HIGHLIGHT_TEXT_COLOR = exports.HIGHLIGHT_COLOR = exports.RE_INCLUDEGRAPHICS_WITH_ALIGNMENT_GLOBAL = exports.RE_ALIGN_CENTERING_GLOBAL = exports.RE_CAPTION_TAG_BEGIN = exports.RE_CAPTION_TAG_GLOBAL = exports.RE_CAPTION_TAG = exports.RE_BEGIN_TABLE_OR_FIGURE_WITH_PLACEMENT = exports.RE_BEGIN_FIGURE_OR_TABLE_ENV = exports.RE_ALIGN_ENV_BLOCK = exports.RE_BEGIN_ALIGN_ENV = exports.RE_CAPTION_SETUP = exports.RE_CAPTION_SETUP_TAG_BEGIN = exports.lineSpaceTag = exports.RE_DIMENSIONAL_UNIT_TAG = exports.RE_CLINE = exports.RE_HDASHLINE = exports.RE_HHLINE = exports.RE_HLINE = exports.RE_TAG_WITH_CLINE = exports.RE_TAG_WITH_HDASHLINE = exports.RE_TAG_WITH_HHLINE = exports.RE_TAG_WITH_HLINE = exports.singleCurlyBracketPattern = exports.doubleCurlyBracketUuidPattern = exports.singleAngleBracketPattern = exports.doubleAngleBracketUuidPattern = exports.uuidPattern = exports.svgInlineRegex = exports.svgRegex = exports.reNumber = exports.reDiagbox = exports.reDiagboxG = void 0; var attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*'; var unquoted = '[^"\'=<>`\\x00-\\x20]+'; var single_quoted = "'[^']*'"; var double_quoted = '"[^"]*"'; exports.attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')'; exports.attribute = '(?:\\s+' + attr_name + '(?:\\s*=\\s*' + exports.attr_value + ')?)'; var open_tag_mml = '^<(math)' + exports.attribute + '*\\s*\\/?>'; var close_tag_mml = '^<\\/math*\\s*>'; exports.openTagMML = new RegExp('(?:' + open_tag_mml + ')'); exports.closeTagMML = new RegExp('(?:' + close_tag_mml + ')'); exports.validMathMLRegex = /<math\b[^>]*>(\s*<(m.*?\b[^>]*>[\s\S]*?<\/m.*?>)\s*)+<\/math>/i; exports.mathMLInlineRegex = /^<(math\b[^>]*)>[\s\S]*<\/math>/; exports.open_tag_smiles = '^<(smiles)' + exports.attribute + '*\\s*\\/?>'; exports.reOpenTagSmiles = new RegExp('(?:' + exports.open_tag_smiles + ')'); exports.markerBeginTagSpan = /^<\/?(span)(?=(\s|>|$))/i; exports.markerCloseTagSpan = /<\/span\s*>/i; exports.reSpan = /^<(span\s*(?:class="(?<className>[^>]*)")\s*([^>]*))>(.*)<\/span\>/; exports.reSpanG = /<(span\s*(?:class="(?<className>[^>]*)")\s*([^>]*))>(.*)<\/span\>/; exports.reSeparatingSpan = /^<(span\s*(?:class="(?<className>[^>]*)")\s*([^>]*))>(\s*)<\/span\>/; exports.reSeparatingSpanG = /<(span\s*(?:class="(?<className>[^>]*)")\s*([^>]*))>(\s*)<\/span\>/; var close_tag_span = '<\\/span*\\s*>'; exports.closeTagSpan = new RegExp('(?:' + close_tag_span + ')'); exports.labelTag = /\\label\s{0,}\{([^}]*)\}/; exports.labelTagG = /\\label\s{0,}\{([^}]*)\}/g; exports.openTag = /\\begin\s{0,}\{(?<name>[^}]*)\}/; exports.openTagDescription = /\\begin\s{0,}\{(?<name>[^}]*)\}\s{0,}\[(?<description>[^\]]*)\]/; exports.openTagProof = /\\begin\s{0,}\{([proof\s]+)\}/; exports.reNewTheoremG = /\\newtheorem([^}]*)\s{0,}\{(?<name>[^}]*)\}/; exports.reNewTheoremInit = /^\\newtheorem\s{0,}\{(?<name>[^}]*)\}/; exports.reNewTheoremUnNumberedInit = /^\\newtheorem\*\s{0,}\{(?<name>[^}]*)\}/; exports.reNewTheorem = /^\\newtheorem\s{0,}\{(?<name>[^}]*)\}\s{0,}\{(?<print>[^}]*)\}/; exports.reNewTheoremNumbered = /^\\newtheorem\s{0,}\{(?<name>[^}]*)\}\s{0,}\{(?<print>[^}]*)\}\s{0,}\[(?<numbered>[^\]]*)\]/; exports.reNewTheoremNumbered2 = /^\\newtheorem\s{0,}\{(?<name>[^}]*)\}\s{0,}\[(?<numbered>[^\]]*)\]\s{0,}\{(?<print>[^}]*)\}/; exports.reNewTheoremUnNumbered = /^\\newtheorem\*\s{0,}\{(?<name>[^}]*)\}\s{0,}\{(?<print>[^}]*)\}/; exports.reTheoremStyle = /^\\theoremstyle\s{0,}\{(definition|plain|remark)\}/; exports.reTheoremStyleG = /\\theoremstyle\s{0,}\{(definition|plain|remark)\}/; exports.defTheoremStyle = "plain"; exports.reNewCommandQedSymbol = /^\\renewcommand\s{0,}\\qedsymbol\s{0,}\{(?<qed>[^}]*)\}/; exports.reNewCommandQedSymbolG = /\\renewcommand\s{0,}\\qedsymbol\s{0,}\{(?<qed>[^}]*)\}/; exports.defQED = "$\\square$"; exports.reSetCounter = /^\\setcounter\s{0,}\{(?<name>[^}]*)\}\s{0,}\{(?<number>[^}]*)\}/; exports.reSetCounterG = /\\setcounter\s{0,}\{(?<name>[^}]*)\}\s{0,}\{(?<number>[^}]*)\}/; exports.reAddContentsLine = /^\\addcontentsline\s{0,}\{(?<exp>[^}]*)\}\s{0,}\{(?<unit>[^}]*)\}/; exports.reAddContentsLineG = /^\\addcontentsline\s{0,}\{(?<exp>[^}]*)\}\s{0,}\{(?<unit>[^}]*)\}/; exports.reMultiRowWithVPos = /(?:\\multirow\s{0,}\[(?<vpos>[^\]]*)\]\s{0,}\{(?<nrows>[^}]*)\}\s{0,}\{(?<width>[^}]*)\})/; exports.reMultiRow = /(?:\\multirow\s{0,}\{(?<nrows>[^}]*)\}\s{0,}\{(?<width>[^}]*)\})/; exports.openTagTabular = /^\\begin\s{0,}{tabular}\s{0,}\{([^}]*)\}/; exports.closeTagTabular = /^\\end\s{0,}{tabular}/; exports.reFootNote = /^\\footnote/; exports.reOpenTagFootnote = /^\\footnote\s{0,}\[\s{0,}\]\s{0,}{|^\\footnote\s{0,}\[-?\d+\]\s{0,}{|^\\footnote\s{0,}{/; exports.reOpenTagFootnoteG = /\\footnote\s{0,}\[\s{0,}\]\s{0,}{|\\footnote\s{0,}\[-?\d+\]\s{0,}{|\\footnote\s{0,}{/; exports.reOpenTagFootnoteNumbered = /\\footnote\s{0,}\[(?<number>-?\d+)\]\s{0,}{/; exports.reOpenTagFootnotetext = /^\\footnotetext\s{0,}\[\s{0,}\]\s{0,}{|^\\footnotetext\s{0,}\[-?\d+\]\s{0,}{|^\\footnotetext\s{0,}{|^\\blfootnotetext\s{0,}{/; exports.reOpenTagFootnotetextG = /\\footnotetext\s{0,}\[\s{0,}\]\s{0,}{|\\footnotetext\s{0,}\[-?\d+\]\s{0,}{|\\footnotetext\s{0,}{|\\blfootnotetext\s{0,}{/; exports.reOpenTagFootnotetextNumbered = /\\footnotetext\s{0,}\[(?<number>-?\d+)\]\s{0,}{/; exports.reFootNoteMark = /^\\footnotemark/; exports.reFootNoteText = /^\\footnotetext|\\blfootnotetext/; exports.reDiagboxG = /\\(diagbox|backslashbox|slashbox)(\[[^\]]*\])?/g; exports.reDiagbox = /\\(diagbox|backslashbox|slashbox)(?:\[(.*?)\])?/; exports.reNumber = /^-?\d+$/; exports.svgRegex = /^<svg\b[^>]*>[\s\S]*<\/svg>$/; exports.svgInlineRegex = /^<svg\b[^>]*>[\s\S]*<\/svg>/; exports.uuidPattern = '(f[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})'; exports.doubleAngleBracketUuidPattern = new RegExp("<<(?:".concat(exports.uuidPattern, ")>>"), "g"); exports.singleAngleBracketPattern = new RegExp("<(?:".concat(exports.uuidPattern, ")>"), "g"); exports.doubleCurlyBracketUuidPattern = new RegExp("\\{\\{(?:".concat(exports.uuidPattern, ")\\}\\}"), "g"); exports.singleCurlyBracketPattern = new RegExp("\\{(?:".concat(exports.uuidPattern, ")\\}"), "g"); exports.RE_TAG_WITH_HLINE = /\[(.*?)\]\s{0,}\\hline/; exports.RE_TAG_WITH_HHLINE = /\[(.*?)\]\s{0,}\\hhline/; exports.RE_TAG_WITH_HDASHLINE = /\[(.*?)\]\s{0,}\\hdashline/; exports.RE_TAG_WITH_CLINE = /\[(.*?)\]\s{0,}\\cline\s{0,}\{([^}]*)\}/; exports.RE_HLINE = /\\hline/; exports.RE_HHLINE = /\\hhline/; exports.RE_HDASHLINE = /\\hdashline/; exports.RE_CLINE = /\\cline\s{0,}\{([^}]*)\}/; exports.RE_DIMENSIONAL_UNIT_TAG = /\[(\d+(?:\.\d+)?(?:ex|pt|em|px|cm|mm|in))\]?/; exports.lineSpaceTag = new RegExp([ exports.RE_TAG_WITH_HLINE.source, exports.RE_TAG_WITH_HHLINE.source, exports.RE_TAG_WITH_HDASHLINE.source, exports.RE_TAG_WITH_CLINE.source, exports.RE_HLINE.source, exports.RE_HHLINE.source, exports.RE_HDASHLINE.source, exports.RE_CLINE.source, exports.RE_DIMENSIONAL_UNIT_TAG.source ].join("|"), "g"); exports.RE_CAPTION_SETUP_TAG_BEGIN = /\\captionsetup\s{0,}\{/; exports.RE_CAPTION_SETUP = /^\\captionsetup\s{0,}\{([^}]*)\}/; exports.RE_BEGIN_ALIGN_ENV = /\\begin\s{0,}\{(center|left|right)\}/; exports.RE_ALIGN_ENV_BLOCK = /\\begin\s{0,}\{(center|left|right)\}\s{0,}([\s\S]*?)\s{0,}\\end\s{0,}\{(center|left|right)\}/; exports.RE_BEGIN_FIGURE_OR_TABLE_ENV = /\\begin\s{0,}\{(table|figure)\}/; exports.RE_BEGIN_TABLE_OR_FIGURE_WITH_PLACEMENT = /\\begin\s{0,}\{(table|figure)\}\s{0,}\[(H|\!H|H\!|h|\!h|h\!|t|\!t|b|\!b|p|\!p)\]/; exports.RE_CAPTION_TAG = /\\caption\s{0,}\{([^}]*)\}/; exports.RE_CAPTION_TAG_GLOBAL = /\s{0,}\\caption\s{0,}\{([^}]*)\}\s{0,}/g; exports.RE_CAPTION_TAG_BEGIN = /\\caption\s{0,}\{/; exports.RE_ALIGN_CENTERING_GLOBAL = /\\centering/g; exports.RE_INCLUDEGRAPHICS_WITH_ALIGNMENT_GLOBAL = /\\includegraphics\[((.*)(center|left|right))\]\s{0,}\{([^{}]*)\}/g; exports.HIGHLIGHT_COLOR = 'rgba(0, 147, 255, 0.25)'; exports.HIGHLIGHT_TEXT_COLOR = '#1e2029'; exports.latexEnvironments = [ "figure", "table", "tabular", "enumerate", "itemize", "proof", //Paragraph environments "center", "left", "right", "abstract" ]; /** https://docs.mathjax.org/en/v3.0-latest/input/tex/macros/index.html#environments */ exports.mathEnvironments = [ "align", "align*", "alignat", "alignat*", "aligned", "alignedat", "array", "Bmatrix", "bmatrix", "cases", "numcases", "subnumcases", "eqnarray", "eqnarray*", "equation", "equation*", "gather", "gather*", "gathered", "matrix", "multline", "multline*", "pmatrix", "smallmatrix", "split", "subarray", "Vmatrix", "vmatrix" ]; exports.tsvSeparatorsDef = { column: '\t', row: '\n' /** newline as the record delimiter */ }; exports.csvSeparatorsDef = { column: ',', row: '\n', toQuoteAllFields: false /** to quote all fields whether or not they contain delimiters */ }; exports.mdSeparatorsDef = { column: ' ', row: ' <br> ', /** <br> as the record delimiter */ }; /** * key - name of block-rule; * terminated - a list of rules that this rule can terminate. */ exports.terminatedRules = { "smilesDrawerBlock": { terminated: ['paragraph', 'reference', 'blockquote', 'list'] }, "BeginTable": { terminated: ["newTheoremBlock"] }, "BeginAlign": { terminated: ["newTheoremBlock"] }, "BeginTabular": { terminated: ['paragraph', "newTheoremBlock"] }, "BeginProof": { terminated: ["newTheoremBlock"] }, "BeginTheorem": { terminated: ["newTheoremBlock"] }, "newTheoremBlock": { terminated: ["pageBreaksBlock"] }, "ReNewCommand": { terminated: [] }, "Lists": { terminated: [] }, "separatingSpan": { terminated: [] }, "headingSection": { terminated: ["newTheoremBlock", "mathMLBlock"] }, "addContentsLineBlock": { terminated: ["newTheoremBlock"] }, "mathMLBlock": { terminated: ['paragraph', 'newTheoremBlock'] }, "abstractBlock": { terminated: ['paragraph'] }, "pageBreaksBlock": { terminated: ['paragraph'] }, "paragraphDiv": { terminated: [] }, "svg_block": { terminated: ['paragraph'] }, "image_with_size_block": { terminated: ['paragraph'] }, "fence": { terminated: ['paragraph', 'reference', 'blockquote', 'list'] } }; exports.mathTokenTypes = ["display_math", "inline_math", "equation_math_not_number", "equation_math"]; exports.codeHighlightDef = { auto: false, code: true }; exports.renderOptionsDef = { enable_markdown: true, enable_latex: true, enable_markdown_mmd_extensions: true }; exports.OPENING_STYLE_TOKENS = [ "strong_open", "em_open", "s_open", "mark_open", "underline_open", "out_open", "text_latex_open", "textbf_open", "texttt_open", "textit_open" ]; exports.CLOSING_STYLE_TOKENS = [ "strong_close", "em_close", "s_close", "mark_close", "underline_close", "out_close", "text_latex_close", "textbf_close", "texttt_close", "textit_close" ]; exports.INLINE_ELEMENT_TOKENS = [ "text", "inline_math", "inline_mathML", "code_inline", "smiles_inline", "link_open", "label", "dotfill", "textbf", "texttt", "textit", "text_latex", "url" ]; //# sourceMappingURL=consts.js.map