mathpix-markdown-it 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +84 -81
  2. package/es5/bundle.js +2 -2
  3. package/es5/index.js +2 -2
  4. package/lib/components/mathpix-markdown/index.js +2 -1
  5. package/lib/components/mathpix-markdown/index.js.map +1 -1
  6. package/lib/markdown/common/consts.d.ts +3 -0
  7. package/lib/markdown/common/consts.js +9 -6
  8. package/lib/markdown/common/consts.js.map +1 -1
  9. package/lib/markdown/common/convert-math-to-html.d.ts +2 -0
  10. package/lib/markdown/common/convert-math-to-html.js +126 -0
  11. package/lib/markdown/common/convert-math-to-html.js.map +1 -0
  12. package/lib/markdown/common/html-re.d.ts +7 -0
  13. package/lib/markdown/common/html-re.js +88 -0
  14. package/lib/markdown/common/html-re.js.map +1 -0
  15. package/lib/markdown/common/mmdRules.js +10 -0
  16. package/lib/markdown/common/mmdRules.js.map +1 -1
  17. package/lib/markdown/index.js +2 -1
  18. package/lib/markdown/index.js.map +1 -1
  19. package/lib/markdown/md-block-rule/begin-tabular/index.js +4 -4
  20. package/lib/markdown/md-block-rule/begin-tabular/index.js.map +1 -1
  21. package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js +18 -19
  22. package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js.map +1 -1
  23. package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +38 -24
  24. package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
  25. package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js +1 -1
  26. package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js.map +1 -1
  27. package/lib/markdown/md-block-rule/mathml-block.d.ts +2 -0
  28. package/lib/markdown/md-block-rule/mathml-block.js +68 -0
  29. package/lib/markdown/md-block-rule/mathml-block.js.map +1 -0
  30. package/lib/markdown/md-block-rule/mmd-html-block.d.ts +2 -0
  31. package/lib/markdown/md-block-rule/mmd-html-block.js +96 -0
  32. package/lib/markdown/md-block-rule/mmd-html-block.js.map +1 -0
  33. package/lib/markdown/md-inline-rule/html_inline_full_tag.d.ts +2 -0
  34. package/lib/markdown/md-inline-rule/html_inline_full_tag.js +62 -0
  35. package/lib/markdown/md-inline-rule/html_inline_full_tag.js.map +1 -0
  36. package/lib/markdown/md-inline-rule/mathml-inline.d.ts +2 -0
  37. package/lib/markdown/md-inline-rule/mathml-inline.js +42 -0
  38. package/lib/markdown/md-inline-rule/mathml-inline.js.map +1 -0
  39. package/lib/markdown/md-inline-rule/tabular.js +11 -6
  40. package/lib/markdown/md-inline-rule/tabular.js.map +1 -1
  41. package/lib/markdown/md-inline-rule2/mmd-html_inline2.d.ts +1 -0
  42. package/lib/markdown/md-inline-rule2/mmd-html_inline2.js +85 -0
  43. package/lib/markdown/md-inline-rule2/mmd-html_inline2.js.map +1 -0
  44. package/lib/markdown/md-renderer-rules/breaks.js +5 -1
  45. package/lib/markdown/md-renderer-rules/breaks.js.map +1 -1
  46. package/lib/markdown/mdPluginRaw.js +34 -289
  47. package/lib/markdown/mdPluginRaw.js.map +1 -1
  48. package/lib/markdown/rules.js +1 -1
  49. package/lib/markdown/rules.js.map +1 -1
  50. package/lib/markdown/sanitize/index.js +1 -1
  51. package/lib/markdown/sanitize/index.js.map +1 -1
  52. package/lib/markdown/utils.js +1 -1
  53. package/lib/markdown/utils.js.map +1 -1
  54. package/lib/mathjax/fix-unicode.d.ts +6 -0
  55. package/lib/mathjax/fix-unicode.js +38 -0
  56. package/lib/mathjax/fix-unicode.js.map +1 -0
  57. package/lib/mathjax/mathJaxConfig.js +2 -1
  58. package/lib/mathjax/mathJaxConfig.js.map +1 -1
  59. package/lib/mathjax/mathjax.js +4 -0
  60. package/lib/mathjax/mathjax.js.map +1 -1
  61. package/lib/mathpix-markdown-model/index.d.ts +2 -0
  62. package/lib/mathpix-markdown-model/index.js +2 -1
  63. package/lib/mathpix-markdown-model/index.js.map +1 -1
  64. package/package.json +1 -1
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inlineMathML = void 0;
4
+ var convert_math_to_html_1 = require("../common/convert-math-to-html");
5
+ var consts_1 = require("../common/consts");
6
+ var inlineMathML = function (state, silent) {
7
+ var _a;
8
+ try {
9
+ var pos = state.pos, src = state.src, posMax = state.posMax;
10
+ // Early exit if input is too short or does not start with '<'
11
+ if (pos + 2 >= posMax || src.charCodeAt(pos) !== 0x3C /* < */) {
12
+ return false;
13
+ }
14
+ // Attempt to match the MathML inline pattern
15
+ var match = src.slice(pos).match(consts_1.mathMLInlineRegex);
16
+ if (!match || !consts_1.validMathMLRegex.test(match[0])) {
17
+ return false;
18
+ }
19
+ // Determine the type of MathML (inline or display)
20
+ var type = ((_a = match[1]) === null || _a === void 0 ? void 0 : _a.indexOf('block')) !== -1 ? "display_mathML" : "inline_mathML";
21
+ // Create and configure token if not in silent mode
22
+ if (!silent) {
23
+ var token = state.push(type, "", 0);
24
+ token.content = src.slice(pos, pos + match[0].length);
25
+ token.inlinePos = {
26
+ start: state.pos,
27
+ end: pos + match[0].length
28
+ };
29
+ // Convert MathML to HTML and obtain additional data using MathJax
30
+ (0, convert_math_to_html_1.convertMathToHtml)(state, token, state.md.options);
31
+ }
32
+ // Advance the state position to the end of the matched content
33
+ state.pos += match[0].length;
34
+ return true;
35
+ }
36
+ catch (err) {
37
+ console.error("[ERROR]=>[inlineMathML]=>", err);
38
+ return false;
39
+ }
40
+ };
41
+ exports.inlineMathML = inlineMathML;
42
+ //# sourceMappingURL=mathml-inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathml-inline.js","sourceRoot":"","sources":["../../../src/markdown/md-inline-rule/mathml-inline.ts"],"names":[],"mappings":";;;AACA,uEAAmE;AACnE,2CAAuE;AAEhE,IAAM,YAAY,GAAe,UAAC,KAAK,EAAE,MAAM;;IACpD,IAAI;QACM,IAAA,GAAG,GAAkB,KAAK,IAAvB,EAAE,GAAG,GAAa,KAAK,IAAlB,EAAE,MAAM,GAAK,KAAK,OAAV,CAAW;QAEnC,8DAA8D;QAC9D,IAAI,GAAG,GAAG,CAAC,IAAI,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YAC7D,OAAO,KAAK,CAAC;SACd;QAED,6CAA6C;QAC7C,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAAiB,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,IAAI,CAAC,yBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,mDAAmD;QACnD,IAAI,IAAI,GAAU,CAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,OAAO,CAAC,MAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC;QAEzF,mDAAmD;QACnD,IAAI,CAAC,MAAM,EAAE;YACX,IAAM,KAAK,GAAU,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7C,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,CAAC,SAAS,GAAG;gBAChB,KAAK,EAAE,KAAK,CAAC,GAAG;gBAChB,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;aAC3B,CAAC;YACF,kEAAkE;YAClE,IAAA,wCAAiB,EAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;SACnD;QAED,+DAA+D;QAC/D,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAA;AAtCY,QAAA,YAAY,gBAsCxB"}
@@ -44,12 +44,17 @@ var inlineTabular = function (state, silent) {
44
44
  }
45
45
  if (tok.token === 'inline') {
46
46
  var children = [];
47
- state.env.tabulare = state.md.options.outMath.include_tsv
48
- || state.md.options.outMath.include_csv
49
- || (state.md.options.outMath.include_table_markdown
50
- && state.md.options.outMath.table_markdown && state.md.options.outMath.table_markdown.math_as_ascii);
51
- state.md.inline.parse(tok.content, state.md, state.env, children);
52
- state.env.tabulare = false;
47
+ if (state.env.tabulare) {
48
+ state.md.inline.parse(tok.content, state.md, state.env, children);
49
+ }
50
+ else {
51
+ state.env.tabulare = state.md.options.outMath.include_tsv
52
+ || state.md.options.outMath.include_csv
53
+ || (state.md.options.outMath.include_table_markdown
54
+ && state.md.options.outMath.table_markdown && state.md.options.outMath.table_markdown.math_as_ascii);
55
+ state.md.inline.parse(tok.content, state.md, state.env, children);
56
+ state.env.tabulare = false;
57
+ }
53
58
  tok.children = children;
54
59
  }
55
60
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../../src/markdown/md-inline-rule/tabular.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../../src/markdown/md-inline-rule/tabular.ts"],"names":[],"mappings":";;;AACA,gEAAqG;AACrG,8EAA4E;AAErE,IAAM,aAAa,GAAe,UAAC,KAAK,EAAE,MAAM;;IACrD,IAAI,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;IAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;QACvD,OAAO,KAAK,CAAC;KACd;IACD,IAAM,KAAK,GAAG,KAAK,CAAC,GAAG;SACpB,KAAK,CAAC,EAAE,YAAY,CAAC;SACrB,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,KAAK,CAAC;KACd;IACD,IAAM,SAAS,GAAE,gBAAgB,CAAC;IAClC,IAAI,YAAY,GAAG,KAAK,CAAC,GAAG;SACnB,KAAK,CAAC,YAAY,CAAC;SACnB,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IACD,YAAY,IAAI,YAAY,CAAC;IAC7B,IAAM,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;IAChD,IAAI,CAAC,MAAM,EAAE;QACX,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAClD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAC,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxF,KAAK,CAAC,QAAQ,GAAE,EAAE,CAAC;QACnB,IAAM,QAAQ,GAAI,IAAA,kCAAkB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,KAAK,CAAA;SACb;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAC;gBAAC,SAAQ;aAAC;YAC5C,IAAM,GAAG,GAAgC,IAAA,4BAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YAEnH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAG,CAAC,EAAE,EAAE;gBACpC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,GAAG,CAAC,KAAK,KAAK,YAAY,KAAI,MAAA,KAAK,CAAC,EAAE,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAG;oBAC5D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAA;iBAC1C;gBACD,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE;oBAC1B,IAAI,QAAQ,GAAG,EAAE,CAAC;oBAClB,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;wBACtB,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;qBACnE;yBAAM;wBACL,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW;+BACpD,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW;+BACpC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB;mCAC9C,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CACvG;wBACD,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;wBAClE,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;qBAC5B;oBACD,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBACzB;qBAAM;oBACL,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,gBAAgB,EAAE;wBACrC,GAAG,GAAG,IAAA,kCAAkB,EAAC,GAAG,CAAC,CAAC;qBAC/B;iBACF;gBACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aAC1B;SACF;KACF;IACD,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AA9DW,QAAA,aAAa,iBA8DxB"}
@@ -0,0 +1 @@
1
+ export declare const mmdHtmlInline2: (state: any) => void;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mmdHtmlInline2 = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var html_re_1 = require("../common/html-re");
6
+ var mmdHtmlInline2 = function (state) {
7
+ var _a;
8
+ if (!((_a = state.tokens) === null || _a === void 0 ? void 0 : _a.length)) {
9
+ return;
10
+ }
11
+ var stack = [];
12
+ var closeStack = [];
13
+ // Helper function to hide soft breaks before a token
14
+ var hideSoftBreakBefore = function (tokens, index) {
15
+ var tokenBefore = index > 0 ? tokens[index - 1] : null;
16
+ var tokenBefore2 = index > 1 ? tokens[index - 2] : null;
17
+ if ((tokenBefore === null || tokenBefore === void 0 ? void 0 : tokenBefore.type) === 'softbreak' && (tokenBefore2 === null || tokenBefore2 === void 0 ? void 0 : tokenBefore2.type) === 'html_inline') {
18
+ tokens[index - 1].hidden = true;
19
+ tokens[index - 1].showLineBreak = true;
20
+ }
21
+ };
22
+ for (var i = 0; i < state.tokens.length; i++) {
23
+ var token = state.tokens[i];
24
+ if (token.type === 'html_inline') {
25
+ var matchOpen = token.content.match(html_re_1.HTML_OPEN_TAG_RE);
26
+ if (matchOpen) {
27
+ var tag = matchOpen[1] ? matchOpen[1].toLowerCase() : '';
28
+ var isClose = matchOpen[2] === '/';
29
+ if (tag && !html_re_1.selfClosingTags.includes(tag) && !isClose && !token.isFullHtmlTagContent) {
30
+ stack.push({
31
+ token: token,
32
+ content: token.content,
33
+ tag: tag,
34
+ idx: i,
35
+ });
36
+ }
37
+ continue;
38
+ }
39
+ var matchClose = token.content.match(html_re_1.HTML_CLOSE_TAG_RE);
40
+ if (matchClose) {
41
+ var closeTag = matchClose[1] ? matchClose[1].toLowerCase() : '';
42
+ if (stack.length === 0) {
43
+ console.log("Mismatched closing tag: </".concat(closeTag, ">"));
44
+ closeStack.push({ token: token, content: token.content, tag: closeTag });
45
+ continue;
46
+ }
47
+ var lastOpenTag = stack[stack.length - 1].tag;
48
+ if (lastOpenTag === closeTag || html_re_1.selfClosingTags.includes(lastOpenTag)) {
49
+ // stack.pop();
50
+ var pStack = stack.pop();
51
+ hideSoftBreakBefore(state.tokens, pStack.idx);
52
+ hideSoftBreakBefore(state.tokens, i);
53
+ continue;
54
+ }
55
+ console.log("Mismatched closing tag: </".concat(closeTag, ">"));
56
+ closeStack.push({ token: token, content: token.content, tag: closeTag });
57
+ }
58
+ }
59
+ }
60
+ // Convert unmatched opening and closing tags to text type
61
+ var convertToTextType = function (tokens) {
62
+ var e_1, _a;
63
+ try {
64
+ for (var tokens_1 = tslib_1.__values(tokens), tokens_1_1 = tokens_1.next(); !tokens_1_1.done; tokens_1_1 = tokens_1.next()) {
65
+ var item = tokens_1_1.value;
66
+ item.token.type = 'text';
67
+ }
68
+ }
69
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
70
+ finally {
71
+ try {
72
+ if (tokens_1_1 && !tokens_1_1.done && (_a = tokens_1.return)) _a.call(tokens_1);
73
+ }
74
+ finally { if (e_1) throw e_1.error; }
75
+ }
76
+ };
77
+ if (stack.length) {
78
+ convertToTextType(stack);
79
+ }
80
+ if (closeStack.length) {
81
+ convertToTextType(closeStack);
82
+ }
83
+ };
84
+ exports.mmdHtmlInline2 = mmdHtmlInline2;
85
+ //# sourceMappingURL=mmd-html_inline2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mmd-html_inline2.js","sourceRoot":"","sources":["../../../src/markdown/md-inline-rule2/mmd-html_inline2.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,11 @@ var softBreak = function (tokens, idx, options /*, env */) {
11
11
  return '';
12
12
  }
13
13
  if (tokens[idx].hidden) {
14
- return tokens[idx].showSpace ? ' ' : '';
14
+ return tokens[idx].showSpace
15
+ ? ' '
16
+ : tokens[idx].showLineBreak
17
+ ? '\n'
18
+ : '';
15
19
  }
16
20
  return options.breaks ? (options.xhtmlOut ? '<br />\n' : '<br>\n') : '\n';
17
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"breaks.js","sourceRoot":"","sources":["../../../src/markdown/md-renderer-rules/breaks.ts"],"names":[],"mappings":";;;AAAA;;;KAGK;AACE,IAAM,SAAS,GAAG,UAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU;IACvD,IAAM,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;KACzC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC,CAAC;AATW,QAAA,SAAS,aASpB;AAEK,IAAM,SAAS,GAAG,UAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU;IACvD,IAAM,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB"}
1
+ {"version":3,"file":"breaks.js","sourceRoot":"","sources":["../../../src/markdown/md-renderer-rules/breaks.ts"],"names":[],"mappings":";;;AAAA;;;KAGK;AACE,IAAM,SAAS,GAAG,UAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU;IACvD,IAAM,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IACD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS;YAC1B,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa;gBACzB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,EAAE,CAAC;KACV;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5E,CAAC,CAAC;AAbW,QAAA,SAAS,aAapB;AAEK,IAAM,SAAS,GAAG,UAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU;IACvD,IAAM,WAAW,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;QACrC,OAAO,EAAE,CAAC;KACX;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB"}
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.findEndMarkerPos = void 0;
4
- var tslib_1 = require("tslib");
5
- var mathjax_1 = require("../mathjax/");
6
4
  var tabular_1 = require("./md-inline-rule/tabular");
7
5
  var render_tabular_1 = require("./md-renderer-rules/render-tabular");
8
6
  var md_ascii_1 = require("./md-ascii");
@@ -18,143 +16,20 @@ var core_inline_1 = require("./md-inline-rule/core-inline");
18
16
  var refs_1 = require("./md-inline-rule/refs");
19
17
  var breaks_1 = require("./md-renderer-rules/breaks");
20
18
  var labels_1 = require("./common/labels");
21
- var consts_2 = require("../helpers/consts");
22
19
  var common_1 = require("./common");
20
+ var convert_math_to_html_1 = require("./common/convert-math-to-html");
23
21
  var common_2 = require("./highlight/common");
24
22
  var mathpix_markdown_model_1 = require("../mathpix-markdown-model");
25
23
  var svg_block_1 = require("./md-block-rule/svg_block");
26
24
  var mmdRules_1 = require("./common/mmdRules");
27
25
  var mmdRulesToDisable_1 = require("./common/mmdRulesToDisable");
28
26
  var mmd_fence_1 = require("./md-block-rule/mmd-fence");
29
- var utils_2 = require("../helpers/utils");
27
+ var mmd_html_block_1 = require("./md-block-rule/mmd-html-block");
28
+ var mathml_block_1 = require("./md-block-rule/mathml-block");
29
+ var mathml_inline_1 = require("./md-inline-rule/mathml-inline");
30
+ var mmd_html_inline2_1 = require("./md-inline-rule2/mmd-html_inline2");
31
+ var html_inline_full_tag_1 = require("./md-inline-rule/html_inline_full_tag");
30
32
  var isSpace = require('markdown-it/lib/common/utils').isSpace;
31
- function MathML(state, silent, pos, endMarker, type) {
32
- if (endMarker === void 0) { endMarker = ''; }
33
- if (type === void 0) { type = "inline_mathML"; }
34
- var markerBegin = RegExp('^</?(math)(?=(\\s|>|$))', 'i');
35
- var startMathPos = pos;
36
- var beginMathPos = pos;
37
- var endMathMlPos, endMarkerPos, nextPos, token, content, match;
38
- var endMathMl = "</math>";
39
- if (!markerBegin.test(state.src.slice(startMathPos))) {
40
- return false;
41
- }
42
- if (state.src.slice(startMathPos, state.src.indexOf('>', startMathPos)).indexOf('block') > -1) {
43
- type = "display_mathML";
44
- }
45
- match = state.src
46
- .slice(++startMathPos)
47
- .match(/^(?:math)/);
48
- if (!match) {
49
- return false;
50
- }
51
- startMathPos += match[0].length;
52
- endMathMlPos = state.src.indexOf(endMathMl, startMathPos);
53
- if (endMathMlPos === -1) {
54
- return false;
55
- }
56
- if (endMarker && endMarker !== '') {
57
- endMarkerPos = state.src.indexOf(endMarker, endMathMlPos);
58
- nextPos = endMarkerPos + endMarker.length;
59
- content = state.src.slice(beginMathPos, endMarkerPos);
60
- }
61
- else {
62
- nextPos = endMathMlPos + endMathMl.length;
63
- content = state.src.slice(beginMathPos, endMathMlPos);
64
- }
65
- if (!silent) {
66
- token = state.push(type, "", 0);
67
- token.content = content.trim();
68
- token.inlinePos = {
69
- start: state.pos,
70
- end: nextPos
71
- };
72
- }
73
- /** Perform math to conversion to html and get additional data from MathJax to pass it to render rules */
74
- convertMathToHtml(state, token, state.md.options);
75
- state.pos = nextPos;
76
- return true;
77
- }
78
- var inlineMathML = function (state, silent) {
79
- var startMathPos = state.pos;
80
- if (state.src.charCodeAt(startMathPos) !== 0x3C /* < */) {
81
- return false;
82
- }
83
- return MathML(state, silent, startMathPos);
84
- };
85
- // BLOCK
86
- function mathMLBlock(state, startLine, endLine, silent) {
87
- var markerBegin = RegExp('^</?(math)(?=(\\s|>|$))', 'i');
88
- var content, terminate, i, l, token, oldParentType, lineText, mml, nextLine = startLine + 1, terminatorRules = [].concat(state.md.block.ruler.getRules('paragraph'), state.md.block.ruler.getRules('mathMLBlock')), pos = state.bMarks[startLine] + state.tShift[startLine], max = state.eMarks[startLine];
89
- oldParentType = state.parentType;
90
- state.parentType = 'paragraph';
91
- if (!state.md.options.html) {
92
- return false;
93
- }
94
- if (state.src.charCodeAt(pos) !== 0x3C /* < */) {
95
- return false;
96
- }
97
- lineText = state.src.slice(pos, max);
98
- mml = consts_1.openTagMML.test(lineText);
99
- if (!markerBegin.test(lineText)) {
100
- return false;
101
- }
102
- /** For validation mode we can terminate immediately */
103
- if (silent) {
104
- return true;
105
- }
106
- // jump line-by-line until empty one or EOF
107
- for (; nextLine < endLine; nextLine++) {
108
- pos = state.bMarks[nextLine] + state.tShift[nextLine];
109
- max = state.eMarks[nextLine];
110
- lineText = state.src.slice(pos, max);
111
- if (mml) {
112
- if (consts_1.closeTagMML.test(lineText)) {
113
- mml = false;
114
- }
115
- }
116
- else {
117
- if (state.isEmpty(nextLine)) {
118
- break;
119
- }
120
- }
121
- if (consts_1.openTagMML.test(lineText)) {
122
- mml = true;
123
- }
124
- // this would be a code block normally, but after paragraph
125
- // it's considered a lazy continuation regardless of what's there
126
- if (state.sCount[nextLine] - state.blkIndent > 3) {
127
- continue;
128
- }
129
- // quirk for blockquotes, this line should already be checked by that rule
130
- if (state.sCount[nextLine] < 0) {
131
- continue;
132
- }
133
- // Some tags can terminate paragraph without empty line.
134
- terminate = false;
135
- for (i = 0, l = terminatorRules.length; i < l; i++) {
136
- if (terminatorRules[i](state, nextLine, endLine, true)) {
137
- terminate = true;
138
- break;
139
- }
140
- }
141
- if (terminate) {
142
- break;
143
- }
144
- }
145
- content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();
146
- state.line = nextLine;
147
- token = state.push('paragraph_open', 'div', 1);
148
- token.map = [startLine, state.line];
149
- token = state.push('inline', '', 0);
150
- token.content = content;
151
- token.map = [startLine, state.line];
152
- token.children = [];
153
- token = state.push('paragraph_close', 'div', -1);
154
- state.parentType = oldParentType;
155
- return true;
156
- }
157
- ;
158
33
  var getMathEnvironment = function (str) {
159
34
  str = str.trim();
160
35
  if (!str) {
@@ -248,11 +123,6 @@ var multiMath = function (state, silent) {
248
123
  return false;
249
124
  }
250
125
  var nextPos = endMarkerPos + endMarker.length;
251
- if (state.src.slice(startMathPos, endMarkerPos).trim().indexOf('<math') === 0) {
252
- if (MathML(state, silent, state.src.indexOf('<math', startMathPos), endMarker, type === 'inline_math' ? "inline_mathML" : "display_mathML")) {
253
- return true;
254
- }
255
- }
256
126
  if (!silent) {
257
127
  var token = state.push(type, "", 0);
258
128
  if (state.env.subTabular) {
@@ -297,7 +167,7 @@ var multiMath = function (state, silent) {
297
167
  }
298
168
  if (!state.md.options.forLatex) {
299
169
  /** Perform math to conversion to html and get additional data from MathJax to pass it to render rules */
300
- convertMathToHtml(state, token, state.md.options);
170
+ (0, convert_math_to_html_1.convertMathToHtml)(state, token, state.md.options);
301
171
  }
302
172
  }
303
173
  state.pos = nextPos;
@@ -362,11 +232,6 @@ var simpleMath = function (state, silent) {
362
232
  return false;
363
233
  }
364
234
  }
365
- if (state.src.slice(startMathPos, endMarkerPos).trim().indexOf('<math') === 0) {
366
- if (MathML(state, silent, state.src.indexOf('<math', startMathPos), endMarker, endMarker.length === 1 ? "inline_mathML" : "display_mathML")) {
367
- return true;
368
- }
369
- }
370
235
  if (!silent) {
371
236
  var token = state.push(endMarker.length === 1 ? "inline_math" : "display_math", "", 0);
372
237
  token.inputLatex = state.src.slice(state.pos, nextPos);
@@ -395,7 +260,7 @@ var simpleMath = function (state, silent) {
395
260
  }
396
261
  /** Perform math to conversion to html and get additional data from MathJax to pass it to render rules */
397
262
  if (!state.md.options.forLatex) {
398
- convertMathToHtml(state, token, state.md.options);
263
+ (0, convert_math_to_html_1.convertMathToHtml)(state, token, state.md.options);
399
264
  }
400
265
  }
401
266
  state.pos = nextPos;
@@ -474,120 +339,6 @@ function extend(options, defaults) {
474
339
  return result;
475
340
  }, options);
476
341
  }
477
- /** Perform math to conversion to html and get additional data from MathJax to pass it to render rules */
478
- var convertMathToHtml = function (state, token, options) {
479
- var _a, _b, _c;
480
- var math = token.content;
481
- var isBlock = token.type !== 'inline_math';
482
- var begin_number = mathjax_1.MathJax.GetLastEquationNumber() + 1;
483
- try {
484
- var cwidth = 1200;
485
- if (options && options.width && options.width > 0) {
486
- cwidth = options.width;
487
- }
488
- else {
489
- cwidth = (0, utils_1.getWidthFromDocument)(cwidth);
490
- }
491
- if (token.type === 'display_mathML' || token.type === 'inline_mathML') {
492
- var data = mathjax_1.MathJax.TypesetMathML(math, {
493
- display: true,
494
- metric: { cwidth: cwidth },
495
- outMath: options.outMath,
496
- accessibility: options.accessibility,
497
- renderingErrors: options.renderingErrors
498
- });
499
- token.mathEquation = data.html;
500
- token.mathData = data.data;
501
- }
502
- else {
503
- if (token.return_asciimath) {
504
- mathjax_1.MathJax.Reset(begin_number);
505
- var data = mathjax_1.MathJax.TypesetSvgAndAscii(math, {
506
- display: isBlock,
507
- metric: { cwidth: cwidth },
508
- outMath: Object.assign({}, options.outMath, {
509
- optionAscii: {
510
- showStyle: false,
511
- extraBrackets: true,
512
- tableToTsv: ((_a = options.outMath) === null || _a === void 0 ? void 0 : _a.include_tsv)
513
- && consts_2.envArraysShouldBeFlattenInTSV.includes(token.math_env),
514
- tableToCsv: ((_b = options.outMath) === null || _b === void 0 ? void 0 : _b.include_csv)
515
- && consts_2.envArraysShouldBeFlattenInTSV.includes(token.math_env),
516
- tableToMd: ((_c = options.outMath) === null || _c === void 0 ? void 0 : _c.include_table_markdown)
517
- && consts_2.envArraysShouldBeFlattenInTSV.includes(token.math_env),
518
- isSubTable: token.isSubTable,
519
- tsv_separators: tslib_1.__assign({}, consts_1.tsvSeparatorsDef),
520
- csv_separators: tslib_1.__assign({}, consts_1.csvSeparatorsDef),
521
- md_separators: tslib_1.__assign({}, consts_1.mdSeparatorsDef),
522
- },
523
- }),
524
- mathJax: options.mathJax,
525
- accessibility: options.accessibility,
526
- renderingErrors: options.renderingErrors
527
- });
528
- token.mathEquation = data.html;
529
- token.mathData = data.data;
530
- token.ascii = data.ascii;
531
- token.ascii_tsv = data.ascii_tsv;
532
- token.ascii_csv = data.ascii_csv;
533
- token.ascii_md = data.ascii_md;
534
- token.labels = data.labels;
535
- }
536
- else {
537
- mathjax_1.MathJax.Reset(begin_number);
538
- var data = mathjax_1.MathJax.Typeset(math, { display: isBlock, metric: { cwidth: cwidth },
539
- outMath: options.outMath, mathJax: options.mathJax, forDocx: options.forDocx,
540
- accessibility: options.accessibility,
541
- nonumbers: options.nonumbers,
542
- renderingErrors: options.renderingErrors
543
- });
544
- token.mathEquation = data.html;
545
- token.mathData = data.data;
546
- token.ascii = data.ascii;
547
- token.ascii_tsv = data.ascii_tsv;
548
- token.ascii_csv = data.ascii_csv;
549
- token.ascii_md = data.ascii_md;
550
- token.labels = data.labels;
551
- }
552
- }
553
- var number = mathjax_1.MathJax.GetLastEquationNumber();
554
- var idLabels = '';
555
- if (token.labels) {
556
- /** generate parenID - needs to multiple labels */
557
- var labelsKeys = token.labels ? Object.keys(token.labels) : [];
558
- idLabels = (labelsKeys === null || labelsKeys === void 0 ? void 0 : labelsKeys.length) ? encodeURIComponent(labelsKeys.join('_')) : '';
559
- for (var key in token.labels) {
560
- var tagContent = token.labels[key].tag;
561
- var tagChildrenTokens = [];
562
- state.md.inline.parse(tagContent, state.md, state.env, tagChildrenTokens);
563
- (0, labels_1.addIntoLabelsList)({
564
- key: key,
565
- id: idLabels,
566
- tag: tagContent,
567
- tagId: token.labels[key].id,
568
- tagChildrenTokens: tagChildrenTokens,
569
- type: labels_1.eLabelType.equation
570
- });
571
- }
572
- }
573
- token.idLabels = idLabels;
574
- token.number = number;
575
- token.begin_number = begin_number;
576
- token.attrNumber = begin_number >= number
577
- ? number.toString()
578
- : begin_number.toString() + ',' + number.toString();
579
- return token;
580
- }
581
- catch (e) {
582
- console.error('ERROR [convertMathToHtml] MathJax =>', e.message, e);
583
- (0, utils_2.formatMathJaxError)(e, math, 'convertMathToHtml');
584
- token.error = {
585
- message: e.message,
586
- error: e
587
- };
588
- return token;
589
- }
590
- };
591
342
  var renderMath = function (a, token, options) {
592
343
  var _a, _b;
593
344
  var mathEquation = token.mathEquation;
@@ -734,12 +485,9 @@ var getCoutOpenCloseBranches = function (str, beginMarker, endMarker) {
734
485
  };
735
486
  function paragraphDiv(state, startLine /*, endLine*/) {
736
487
  var _a, _b;
737
- // resetCounter();
738
488
  var isMathOpen = false;
739
489
  var openedAuthorBlock = false;
740
490
  var openBrackets = 0;
741
- // const pickStartTag: RegExp = /\\begin{(abstract|equation|equation\*|center|left|right|table|figure|tabular)}|\\\[/;
742
- // const pickEndTag: RegExp = /\\end{(abstract|equation|equation\*|center|left|right|table|figure|tabular)}|\\\]/;
743
491
  var pickStartTag = /\\begin{(abstract|center|left|right|table|figure|tabular)}/;
744
492
  var pickEndTag = /\\end{(abstract|center|left|right|table|figure|tabular)}/;
745
493
  var pickMathStartTag = /\\begin{(equation|equation\*)}|\\\[/;
@@ -747,11 +495,11 @@ function paragraphDiv(state, startLine /*, endLine*/) {
747
495
  var mathStartTag = /\\begin{([^}]*)}|\\\[|\\\(/;
748
496
  var pickTag = /^\\(?:title|section|subsection)/;
749
497
  var listStartTag = /\\begin{(enumerate|itemize)}/;
750
- var content, terminate, i, l, token, oldParentType, lineText, mml, nextLine = startLine + 1, terminatorRules = state.md.block.ruler.getRules('paragraph'), endLine = state.lineMax, pos = state.bMarks[startLine] + state.tShift[startLine], max = state.eMarks[startLine];
498
+ var content, terminate, i, l, token, oldParentType, lineText, //mml,
499
+ nextLine = startLine + 1, terminatorRules = state.md.block.ruler.getRules('paragraph'), endLine = state.lineMax, pos = state.bMarks[startLine] + state.tShift[startLine], max = state.eMarks[startLine];
751
500
  oldParentType = state.parentType;
752
501
  state.parentType = 'paragraph';
753
502
  lineText = state.src.slice(pos, max);
754
- mml = consts_1.openTagMML.test(lineText);
755
503
  if (lineText === '\\maketitle') {
756
504
  state.line = nextLine++;
757
505
  return true;
@@ -797,33 +545,23 @@ function paragraphDiv(state, startLine /*, endLine*/) {
797
545
  if (listStartTag.test(prewLineText)) {
798
546
  listOpen = true;
799
547
  }
800
- if (mml) {
801
- if (consts_1.closeTagMML.test(lineText)) {
802
- mml = false;
803
- }
548
+ if (pickTag.test(prewLineText) || pickTag.test(lineText)) {
549
+ break;
804
550
  }
805
- else {
806
- if (pickTag.test(prewLineText) || pickTag.test(lineText)) {
807
- break;
808
- }
809
- if (state.isEmpty(nextLine)
810
- || pickStartTag.test(lineText) || pickEndTag.test(prewLineText)
811
- || (!isMath && !openedAuthorBlock && !isMathOpen
812
- && (pickMathStartTag.test(lineText) || pickMathEndTag.test(prewLineText)))) {
813
- break;
814
- }
815
- if ((0, utils_1.includesSimpleMathTag)(lineText)) {
816
- isMathOpen = !isMathOpen;
817
- }
818
- if (listStartTag.test(lineText) && (prewLineText.indexOf('\\item') === -1 || !listOpen)) {
819
- break;
820
- }
821
- if ((0, utils_1.includesSimpleMathTag)(lineText) && isMathOpen || (0, utils_1.includesSimpleMathTag)(prewLineText) && !isMathOpen) {
822
- break;
823
- }
551
+ if (state.isEmpty(nextLine)
552
+ || pickStartTag.test(lineText) || pickEndTag.test(prewLineText)
553
+ || (!isMath && !openedAuthorBlock && !isMathOpen
554
+ && (pickMathStartTag.test(lineText) || pickMathEndTag.test(prewLineText)))) {
555
+ break;
556
+ }
557
+ if ((0, utils_1.includesSimpleMathTag)(lineText)) {
558
+ isMathOpen = !isMathOpen;
824
559
  }
825
- if (consts_1.openTagMML.test(lineText)) {
826
- mml = true;
560
+ if (listStartTag.test(lineText) && (prewLineText.indexOf('\\item') === -1 || !listOpen)) {
561
+ break;
562
+ }
563
+ if ((0, utils_1.includesSimpleMathTag)(lineText) && isMathOpen || (0, utils_1.includesSimpleMathTag)(prewLineText) && !isMathOpen) {
564
+ break;
827
565
  }
828
566
  // this would be a code block normally, but after paragraph
829
567
  // it's considered a lazy continuation regardless of what's there
@@ -956,6 +694,9 @@ exports.default = (function (options) {
956
694
  /** TODO: check it in vscode */
957
695
  (0, labels_1.clearLabelsList)(); /** Clean up the global list of all labels */
958
696
  }
697
+ if (!md.options.htmlDisableTagMatching) {
698
+ md.block.ruler.at("html_block", mmd_html_block_1.mmdHtmlBlock, { alt: ['paragraph', 'reference', 'blockquote'] });
699
+ }
959
700
  md.block.ruler.before('html_block', 'svg_block', svg_block_1.svg_block, { alt: (0, common_1.getTerminatedRules)("svg_block") });
960
701
  md.block.ruler.before("paragraph", "paragraphDiv", paragraphDiv);
961
702
  if (!md.options.enableCodeBlockRuleForLatexCommands) {
@@ -966,8 +707,9 @@ exports.default = (function (options) {
966
707
  }
967
708
  md.block.ruler.before("ReNewCommand", "newTheoremBlock", block_rule_1.newTheoremBlock, { alt: (0, common_1.getTerminatedRules)("newTheoremBlock") });
968
709
  md.inline.ruler.before("escape", "usepackage", usepackage);
969
- md.block.ruler.before("html_block", "mathMLBlock", mathMLBlock, { alt: (0, common_1.getTerminatedRules)("mathMLBlock") });
970
- md.inline.ruler.before("html_inline", "mathML", inlineMathML);
710
+ md.block.ruler.before("html_block", "mathMLBlock", mathml_block_1.mathMLBlock, { alt: (0, common_1.getTerminatedRules)("mathMLBlock") });
711
+ md.inline.ruler.before("html_inline", "mathML", mathml_inline_1.inlineMathML);
712
+ md.inline.ruler.before("html_inline", "html_inline_full_tag", html_inline_full_tag_1.html_inline_full_tag);
971
713
  md.inline.ruler.before("escape", "multiMath", multiMath);
972
714
  md.inline.ruler.before("multiMath", "refsInline", refs_1.refsInline);
973
715
  md.inline.ruler.before("multiMath", "inlineTabular", tabular_1.inlineTabular);
@@ -985,6 +727,9 @@ exports.default = (function (options) {
985
727
  md.inline.ruler.before("asciiMath", "backtickAsAsciiMath", md_ascii_1.backtickAsAsciiMath);
986
728
  /** Replace image inline rule */
987
729
  md.inline.ruler.at('image', image_1.imageWithSize);
730
+ if (!md.options.htmlDisableTagMatching) {
731
+ md.inline.ruler2.push('html_inline2', mmd_html_inline2_1.mmdHtmlInline2);
732
+ }
988
733
  var disableRuleTypes = md.options.renderOptions
989
734
  ? (0, mmdRulesToDisable_1.getDisableRuleTypes)(md.options.renderOptions)
990
735
  : [];