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.
- package/README.md +84 -81
- package/es5/bundle.js +2 -2
- package/es5/index.js +2 -2
- package/lib/components/mathpix-markdown/index.js +2 -1
- package/lib/components/mathpix-markdown/index.js.map +1 -1
- package/lib/markdown/common/consts.d.ts +3 -0
- package/lib/markdown/common/consts.js +9 -6
- package/lib/markdown/common/consts.js.map +1 -1
- package/lib/markdown/common/convert-math-to-html.d.ts +2 -0
- package/lib/markdown/common/convert-math-to-html.js +126 -0
- package/lib/markdown/common/convert-math-to-html.js.map +1 -0
- package/lib/markdown/common/html-re.d.ts +7 -0
- package/lib/markdown/common/html-re.js +88 -0
- package/lib/markdown/common/html-re.js.map +1 -0
- package/lib/markdown/common/mmdRules.js +10 -0
- package/lib/markdown/common/mmdRules.js.map +1 -1
- package/lib/markdown/index.js +2 -1
- package/lib/markdown/index.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/index.js +4 -4
- package/lib/markdown/md-block-rule/begin-tabular/index.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js +18 -19
- package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +38 -24
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/mathml-block.d.ts +2 -0
- package/lib/markdown/md-block-rule/mathml-block.js +68 -0
- package/lib/markdown/md-block-rule/mathml-block.js.map +1 -0
- package/lib/markdown/md-block-rule/mmd-html-block.d.ts +2 -0
- package/lib/markdown/md-block-rule/mmd-html-block.js +96 -0
- package/lib/markdown/md-block-rule/mmd-html-block.js.map +1 -0
- package/lib/markdown/md-inline-rule/html_inline_full_tag.d.ts +2 -0
- package/lib/markdown/md-inline-rule/html_inline_full_tag.js +62 -0
- package/lib/markdown/md-inline-rule/html_inline_full_tag.js.map +1 -0
- package/lib/markdown/md-inline-rule/mathml-inline.d.ts +2 -0
- package/lib/markdown/md-inline-rule/mathml-inline.js +42 -0
- package/lib/markdown/md-inline-rule/mathml-inline.js.map +1 -0
- package/lib/markdown/md-inline-rule/tabular.js +11 -6
- package/lib/markdown/md-inline-rule/tabular.js.map +1 -1
- package/lib/markdown/md-inline-rule2/mmd-html_inline2.d.ts +1 -0
- package/lib/markdown/md-inline-rule2/mmd-html_inline2.js +85 -0
- package/lib/markdown/md-inline-rule2/mmd-html_inline2.js.map +1 -0
- package/lib/markdown/md-renderer-rules/breaks.js +5 -1
- package/lib/markdown/md-renderer-rules/breaks.js.map +1 -1
- package/lib/markdown/mdPluginRaw.js +34 -289
- package/lib/markdown/mdPluginRaw.js.map +1 -1
- package/lib/markdown/rules.js +1 -1
- package/lib/markdown/rules.js.map +1 -1
- package/lib/markdown/sanitize/index.js +1 -1
- package/lib/markdown/sanitize/index.js.map +1 -1
- package/lib/markdown/utils.js +1 -1
- package/lib/markdown/utils.js.map +1 -1
- package/lib/mathjax/fix-unicode.d.ts +6 -0
- package/lib/mathjax/fix-unicode.js +38 -0
- package/lib/mathjax/fix-unicode.js.map +1 -0
- package/lib/mathjax/mathJaxConfig.js +2 -1
- package/lib/mathjax/mathJaxConfig.js.map +1 -1
- package/lib/mathjax/mathjax.js +4 -0
- package/lib/mathjax/mathjax.js.map +1 -1
- package/lib/mathpix-markdown-model/index.d.ts +2 -0
- package/lib/mathpix-markdown-model/index.js +2 -1
- package/lib/mathpix-markdown-model/index.js.map +1 -1
- 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
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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":";;;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,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW
|
|
1
|
+
{"version":3,"file":"tabular.js","sourceRoot":"","sources":["../../../src/markdown/md-inline-rule/tabular.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
|
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,
|
|
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 (
|
|
801
|
-
|
|
802
|
-
mml = false;
|
|
803
|
-
}
|
|
548
|
+
if (pickTag.test(prewLineText) || pickTag.test(lineText)) {
|
|
549
|
+
break;
|
|
804
550
|
}
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
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 (
|
|
826
|
-
|
|
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
|
: [];
|