mathpix-markdown-it 2.0.31 → 2.0.32
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/doc/changelog.md +22 -0
- package/es5/bundle.js +1 -1
- package/es5/context-menu.js +1 -1
- package/es5/index.js +1 -1
- package/lib/helpers/parse-mmd-element.js +28 -12
- package/lib/helpers/parse-mmd-element.js.map +1 -1
- package/lib/markdown/common/consts.d.ts +7 -2
- package/lib/markdown/common/consts.js +12 -7
- package/lib/markdown/common/consts.js.map +1 -1
- package/lib/markdown/common/list-markers.d.ts +25 -0
- package/lib/markdown/common/list-markers.js +134 -0
- package/lib/markdown/common/list-markers.js.map +1 -0
- package/lib/markdown/common/mmdRules.js +5 -0
- package/lib/markdown/common/mmdRules.js.map +1 -1
- package/lib/markdown/common/render-table-cell-content.d.ts +21 -1
- package/lib/markdown/common/render-table-cell-content.js +38 -3
- package/lib/markdown/common/render-table-cell-content.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/common.d.ts +9 -0
- package/lib/markdown/md-block-rule/begin-tabular/common.js +41 -8
- package/lib/markdown/md-block-rule/begin-tabular/common.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/index.d.ts +3 -0
- package/lib/markdown/md-block-rule/begin-tabular/index.js +22 -3
- 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 +7 -2
- 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.d.ts +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +84 -11
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/placeholder-utils.d.ts +22 -0
- package/lib/markdown/md-block-rule/begin-tabular/placeholder-utils.js +76 -0
- package/lib/markdown/md-block-rule/begin-tabular/placeholder-utils.js.map +1 -0
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.d.ts +3 -5
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.js +27 -19
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-math.js +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-math.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.d.ts +5 -0
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js +69 -59
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/tabular-td.js +2 -1
- package/lib/markdown/md-block-rule/begin-tabular/tabular-td.js.map +1 -1
- package/lib/markdown/md-block-rule/helper.d.ts +15 -0
- package/lib/markdown/md-block-rule/helper.js +86 -5
- package/lib/markdown/md-block-rule/helper.js.map +1 -1
- package/lib/markdown/md-inline-rule/core-inline.js +88 -63
- package/lib/markdown/md-inline-rule/core-inline.js.map +1 -1
- package/lib/markdown/md-inline-rule/tabular.js +12 -12
- package/lib/markdown/md-inline-rule/tabular.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/index.js +8 -4
- package/lib/markdown/md-latex-lists-env/index.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-common.js +6 -2
- package/lib/markdown/md-latex-lists-env/latex-list-common.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.d.ts +11 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.js +222 -116
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-env-engine.d.ts +48 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-engine.js +247 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-engine.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.d.ts +14 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js +137 -1
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-items.js +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-items.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-tokens.js +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-tokens.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-types.d.ts +38 -2
- package/lib/markdown/md-latex-lists-env/latex-list-types.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/re-level.d.ts +0 -4
- package/lib/markdown/md-latex-lists-env/re-level.js +4 -17
- package/lib/markdown/md-latex-lists-env/re-level.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/render-latex-list-env.js +60 -6
- package/lib/markdown/md-latex-lists-env/render-latex-list-env.js.map +1 -1
- package/lib/markdown/md-renderer-rules/render-tabular.d.ts +26 -12
- package/lib/markdown/md-renderer-rules/render-tabular.js +288 -18
- package/lib/markdown/md-renderer-rules/render-tabular.js.map +1 -1
- package/lib/markdown/mdPluginRaw.js +3 -3
- package/lib/markdown/mdPluginRaw.js.map +1 -1
- package/lib/markdown/utils.d.ts +23 -0
- package/lib/markdown/utils.js +108 -1
- package/lib/markdown/utils.js.map +1 -1
- package/lib/styles/styles-lists.d.ts +1 -1
- package/lib/styles/styles-lists.js +1 -1
- package/lib/styles/styles-lists.js.map +1 -1
- package/package.json +1 -1
- package/pr-specs/2026-01-itemize-support-inside-tabular.md +149 -0
|
@@ -1,48 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Lists = void 0;
|
|
3
|
+
exports.Lists = exports.ListsInternal = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
4
5
|
var latex_list_tokens_1 = require("./latex-list-tokens");
|
|
5
6
|
var latex_list_items_1 = require("./latex-list-items");
|
|
6
7
|
var re_level_1 = require("./re-level");
|
|
7
8
|
var latex_list_types_1 = require("./latex-list-types");
|
|
8
9
|
var latex_list_common_1 = require("./latex-list-common");
|
|
10
|
+
var latex_list_env_engine_1 = require("./latex-list-env-engine");
|
|
9
11
|
var consts_1 = require("../common/consts");
|
|
10
12
|
/**
|
|
11
|
-
*
|
|
13
|
+
* Detects \begin{lstlisting} or \begin{tabular} on a line and enters an opaque env.
|
|
14
|
+
* - Uses `stack` to track nesting (tabular can nest, lstlisting cannot).
|
|
15
|
+
* - Text before \begin (including prefixes like \hline or & when nesting inside tabular) is preserved and added as normal list content.
|
|
16
|
+
* - From \begin... to end of line is appended as raw/opaque text.
|
|
12
17
|
*
|
|
13
|
-
*
|
|
14
|
-
* - If already inside a lstlisting environment (`envDepth > 0`), does nothing.
|
|
15
|
-
* - If a `\begin{lstlisting}` is found:
|
|
16
|
-
* - Text before the begin is appended either as a new list item (when it matches `itemTag`)
|
|
17
|
-
* or concatenated to the previous item.
|
|
18
|
-
* - Sets `envDepth` to 1 (entered lstlisting).
|
|
19
|
-
* - Appends the substring starting at `\begin{lstlisting}` to the end of the line
|
|
20
|
-
* as code content in the current item.
|
|
21
|
-
*
|
|
22
|
-
* The function does not mutate inputs; it returns the updated state.
|
|
23
|
-
*
|
|
24
|
-
* @param lineText The full text of the current line.
|
|
25
|
-
* @param envDepth Current lstlisting nesting depth.
|
|
26
|
-
* @param items Collected items so far (list builder state).
|
|
27
|
-
* @param nextLine The current (next) line index used for item position metadata.
|
|
28
|
-
* @param dStart Document start line offset to compute absolute positions.
|
|
29
|
-
* @param itemTag RegExp to detect list item prefixes (e.g., `^\s*\\item`).
|
|
30
|
-
* @returns Updated handling result with flags, depth, items, and original line text.
|
|
18
|
+
* @returns Updated { handled, stack, items, lineText }.
|
|
31
19
|
*/
|
|
32
|
-
var handleLstBeginInline = function (lineText,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
var handleLstBeginInline = function (lineText, stack, items, nextLine, dStart, itemTag) {
|
|
21
|
+
var top = stack[stack.length - 1];
|
|
22
|
+
// If we are inside lstlisting, ignore any begin markers.
|
|
23
|
+
if (top === "lstlisting") {
|
|
24
|
+
return { handled: false, stack: stack, items: items, lineText: lineText };
|
|
36
25
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
26
|
+
// Reset regex lastIndex (important if /g/)
|
|
27
|
+
consts_1.BEGIN_LST_INLINE_RE.lastIndex = 0;
|
|
28
|
+
consts_1.BEGIN_TABULAR_INLINE_RE.lastIndex = 0;
|
|
29
|
+
var mbLst = consts_1.BEGIN_LST_INLINE_RE.exec(lineText);
|
|
30
|
+
var mbTab = consts_1.BEGIN_TABULAR_INLINE_RE.exec(lineText);
|
|
31
|
+
// If we are inside tabular, allow only nested tabular
|
|
32
|
+
if (top === "tabular") {
|
|
33
|
+
if (!mbTab)
|
|
34
|
+
return { handled: false, stack: stack, items: items, lineText: lineText };
|
|
35
|
+
// keep the prefix before \begin{tabular} (e.g. "\hline " or " & ")
|
|
36
|
+
var prefix = lineText.slice(0, mbTab.index);
|
|
37
|
+
var beginAndRest = lineText.slice(mbTab.index);
|
|
38
|
+
// open nested tabular
|
|
39
|
+
stack = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(stack), false), ["tabular"], false);
|
|
40
|
+
if (prefix.length > 0) {
|
|
41
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, prefix, nextLine);
|
|
42
|
+
}
|
|
43
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, beginAndRest, nextLine);
|
|
44
|
+
return { handled: true, stack: stack, items: items, lineText: lineText };
|
|
40
45
|
}
|
|
46
|
+
// If stack is empty:
|
|
47
|
+
if (!mbLst && !mbTab)
|
|
48
|
+
return { handled: false, stack: stack, items: items, lineText: lineText };
|
|
49
|
+
// Choose earliest begin if both exist
|
|
50
|
+
var mb = mbLst && mbTab
|
|
51
|
+
? (mbLst.index <= mbTab.index ? mbLst : mbTab)
|
|
52
|
+
: (mbLst || mbTab);
|
|
53
|
+
var openedType = mb === mbLst ? "lstlisting" : "tabular";
|
|
41
54
|
var beginIndex = mb.index;
|
|
42
|
-
|
|
43
|
-
var
|
|
44
|
-
var afterBegin = lineText.slice(beginIndex); // start from \begin...
|
|
45
|
-
// If there was something before begin, it was regular text/part of \item:
|
|
55
|
+
var before = lineText.slice(0, beginIndex);
|
|
56
|
+
var afterBegin = lineText.slice(beginIndex);
|
|
46
57
|
if (before.length > 0) {
|
|
47
58
|
if (itemTag.test(before)) {
|
|
48
59
|
items = (0, latex_list_items_1.ItemsListPush)(items, before, nextLine + dStart, nextLine + dStart);
|
|
@@ -51,96 +62,147 @@ var handleLstBeginInline = function (lineText, envDepth, items, nextLine, dStart
|
|
|
51
62
|
items = (0, latex_list_items_1.ItemsAddToPrev)(items, before, nextLine);
|
|
52
63
|
}
|
|
53
64
|
}
|
|
54
|
-
|
|
55
|
-
items = (0, latex_list_items_1.ItemsAddToPrev)(items, afterBegin, nextLine);
|
|
56
|
-
return { handled: true,
|
|
65
|
+
stack = tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(stack), false), [openedType], false);
|
|
66
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, afterBegin, nextLine);
|
|
67
|
+
return { handled: true, stack: stack, items: items, lineText: lineText };
|
|
57
68
|
};
|
|
58
69
|
/**
|
|
59
|
-
*
|
|
70
|
+
* Detects \end{...} for the current opaque env (stack top).
|
|
71
|
+
* - If not found, appends the full raw line (keeps indentation) as opaque text.
|
|
72
|
+
* - If found, appends up to end marker, pops stack, and returns tail (if any).
|
|
60
73
|
*
|
|
61
|
-
*
|
|
62
|
-
* - If not inside an lstlisting environment (`envDepth === 0`), does nothing.
|
|
63
|
-
* - If no end marker is found on this line, appends the full line (with original leading whitespace)
|
|
64
|
-
* to the current item and reports `handled: true` (still inside the env).
|
|
65
|
-
* - If an end marker is present:
|
|
66
|
-
* - Appends everything up to `\end{...}` (plus the end token itself) to the current item.
|
|
67
|
-
* - Resets `envDepth` to 0 (leaves lstlisting).
|
|
68
|
-
* - If there is trailing text after the end token, returns it in `lineText` so the caller
|
|
69
|
-
* can continue processing the remainder of the line; otherwise returns an empty `lineText`.
|
|
70
|
-
*
|
|
71
|
-
* The function does not mutate inputs; it returns the updated state.
|
|
72
|
-
*
|
|
73
|
-
* @param lineText Current line text (may contain `\end{lstlisting}`).
|
|
74
|
-
* @param envDepth Current lstlisting nesting depth (0 if outside).
|
|
75
|
-
* @param items Accumulated items list (list builder state).
|
|
76
|
-
* @param nextLine Line index used for item position metadata.
|
|
77
|
-
* @param state Markdown-It state (used to read the original line with indentation).
|
|
78
|
-
* @returns Updated result with flags, depth, items, and remaining line text (if any).
|
|
74
|
+
* @returns Updated { handled, stack, items, lineText }.
|
|
79
75
|
*/
|
|
80
|
-
var handleLstEndInline = function (lineText,
|
|
76
|
+
var handleLstEndInline = function (lineText, stack, items, nextLine, state) {
|
|
81
77
|
var _a;
|
|
82
|
-
|
|
83
|
-
if (
|
|
84
|
-
return { handled: false,
|
|
78
|
+
var top = stack[stack.length - 1];
|
|
79
|
+
if (!top) {
|
|
80
|
+
return { handled: false, stack: stack, items: items, lineText: lineText };
|
|
85
81
|
}
|
|
86
|
-
var
|
|
82
|
+
var endRe = top === "lstlisting"
|
|
83
|
+
? consts_1.END_LST_INLINE_RE
|
|
84
|
+
: consts_1.END_TABULAR_INLINE_RE;
|
|
85
|
+
endRe.lastIndex = 0;
|
|
86
|
+
var me = endRe.exec(lineText);
|
|
87
87
|
if (!me) {
|
|
88
|
-
//
|
|
89
|
-
|
|
90
|
-
items = (0, latex_list_items_1.ItemsAddToPrev)(items,
|
|
91
|
-
return { handled: true,
|
|
88
|
+
// still inside opaque env → append raw line with indentation
|
|
89
|
+
var rawLine = state.src.slice(state.bMarks[nextLine], state.eMarks[nextLine]);
|
|
90
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, rawLine, nextLine);
|
|
91
|
+
return { handled: true, stack: stack, items: items, lineText: lineText };
|
|
92
92
|
}
|
|
93
|
-
// There is an end of environment in this line
|
|
94
93
|
var endIndex = me.index;
|
|
95
94
|
var endToken = lineText.slice(endIndex, endIndex + me[0].length);
|
|
96
95
|
var beforeEnd = lineText.slice(0, endIndex);
|
|
97
96
|
var afterEnd = lineText.slice(endIndex + me[0].length);
|
|
98
|
-
//
|
|
97
|
+
// Append code continuation
|
|
99
98
|
if (beforeEnd.length > 0) {
|
|
100
|
-
|
|
99
|
+
var glue = top === "lstlisting" ? "\n" : "";
|
|
100
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, beforeEnd + glue + endToken, nextLine);
|
|
101
101
|
}
|
|
102
102
|
else {
|
|
103
103
|
items = (0, latex_list_items_1.ItemsAddToPrev)(items, endToken, nextLine);
|
|
104
104
|
}
|
|
105
|
-
|
|
105
|
+
// pop matching env
|
|
106
|
+
stack = stack.slice(0, -1);
|
|
107
|
+
// If nothing meaningful after end tag, consume line
|
|
106
108
|
if (!((_a = afterEnd === null || afterEnd === void 0 ? void 0 : afterEnd.trim()) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
107
|
-
return { handled: true,
|
|
109
|
+
return { handled: true, stack: stack, items: items, lineText: "" };
|
|
108
110
|
}
|
|
109
|
-
return
|
|
111
|
+
// return remainder to be parsed normally
|
|
112
|
+
return { handled: false, stack: stack, items: items, lineText: afterEnd };
|
|
110
113
|
};
|
|
111
114
|
/**
|
|
112
|
-
*
|
|
113
|
-
* \begin{itemize} ... \end{itemize}
|
|
114
|
-
* \begin{enumerate} ... \end{enumerate}
|
|
115
|
+
* Processes "opaque" inline environments inside list parsing (currently: tabular, lstlisting).
|
|
115
116
|
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
117
|
+
* The function may:
|
|
118
|
+
* - fully consume the current source line (appending it to `items` as raw text), OR
|
|
119
|
+
* - close an opaque env and return a remaining tail to be parsed again on the same line
|
|
120
|
+
* (e.g. `\end{tabular} & \begin{tabular}{l}`).
|
|
121
|
+
*
|
|
122
|
+
* Uses a guard to prevent infinite loops on malformed input.
|
|
121
123
|
*/
|
|
122
|
-
var
|
|
124
|
+
var processOpaqueLine = function (params) {
|
|
125
|
+
var lineText = params.lineText, stack = params.stack, items = params.items, nextLine = params.nextLine, state = params.state, renderStart = params.renderStart;
|
|
126
|
+
var guard = 0;
|
|
127
|
+
while (guard++ < 50) {
|
|
128
|
+
var top_1 = stack[stack.length - 1];
|
|
129
|
+
if (top_1) {
|
|
130
|
+
// -------- inside opaque --------
|
|
131
|
+
if (top_1 === "tabular") {
|
|
132
|
+
consts_1.END_TABULAR_INLINE_RE.lastIndex = 0;
|
|
133
|
+
consts_1.BEGIN_TABULAR_INLINE_RE.lastIndex = 0;
|
|
134
|
+
var me = consts_1.END_TABULAR_INLINE_RE.exec(lineText);
|
|
135
|
+
var mb = consts_1.BEGIN_TABULAR_INLINE_RE.exec(lineText);
|
|
136
|
+
// close if end exists before begin (or begin missing)
|
|
137
|
+
if (me && (!mb || me.index <= mb.index)) {
|
|
138
|
+
var endRes_1 = handleLstEndInline(lineText, stack, items, nextLine, state);
|
|
139
|
+
stack = endRes_1.stack;
|
|
140
|
+
items = endRes_1.items;
|
|
141
|
+
if (endRes_1.handled) {
|
|
142
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
143
|
+
}
|
|
144
|
+
// got tail → keep parsing same line
|
|
145
|
+
lineText = endRes_1.lineText;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
// otherwise if begin exists, open nested tabular
|
|
149
|
+
if (mb) {
|
|
150
|
+
var beginRes_1 = handleLstBeginInline(lineText, stack, items, nextLine, renderStart, consts_1.LATEX_ITEM_COMMAND_INLINE_RE);
|
|
151
|
+
stack = beginRes_1.stack;
|
|
152
|
+
items = beginRes_1.items;
|
|
153
|
+
if (beginRes_1.handled) {
|
|
154
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
155
|
+
}
|
|
156
|
+
lineText = beginRes_1.lineText;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
// plain opaque line inside tabular:
|
|
160
|
+
// preserve indentation unless this is a tail
|
|
161
|
+
var rawLine = state.src.slice(state.bMarks[nextLine], state.eMarks[nextLine]);
|
|
162
|
+
var rawLineNoIndent = state.src.slice(state.bMarks[nextLine] + state.tShift[nextLine], state.eMarks[nextLine]);
|
|
163
|
+
var toAppend = (lineText !== rawLineNoIndent) ? lineText : rawLine;
|
|
164
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, toAppend, nextLine);
|
|
165
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
166
|
+
}
|
|
167
|
+
// other opaque (lstlisting): only try to end
|
|
168
|
+
var endRes = handleLstEndInline(lineText, stack, items, nextLine, state);
|
|
169
|
+
stack = endRes.stack;
|
|
170
|
+
items = endRes.items;
|
|
171
|
+
if (endRes.handled) {
|
|
172
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
173
|
+
}
|
|
174
|
+
lineText = endRes.lineText;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// not inside opaque: try to begin
|
|
178
|
+
var beginRes = handleLstBeginInline(lineText, stack, items, nextLine, renderStart, consts_1.LATEX_ITEM_COMMAND_INLINE_RE);
|
|
179
|
+
stack = beginRes.stack;
|
|
180
|
+
items = beginRes.items;
|
|
181
|
+
if (beginRes.handled) {
|
|
182
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
183
|
+
}
|
|
184
|
+
lineText = beginRes.lineText;
|
|
185
|
+
return { consumedLine: false, lineText: lineText, stack: stack, items: items };
|
|
186
|
+
}
|
|
187
|
+
// safety: if guard exceeded, treat as consumed to avoid infinite loop
|
|
188
|
+
items = (0, latex_list_items_1.ItemsAddToPrev)(items, lineText, nextLine);
|
|
189
|
+
return { consumedLine: true, lineText: lineText, stack: stack, items: items };
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* Parse a LaTeX list environment starting at `startLine` and emit tokens into `state`.
|
|
193
|
+
*
|
|
194
|
+
* Notes:
|
|
195
|
+
* - The function is "strict": it returns false if the matching \end{...} is not found.
|
|
196
|
+
* - Works with any StateBlock-like object (real block state or synthetic state for inline reuse).
|
|
197
|
+
*
|
|
198
|
+
* @returns true if the environment was successfully parsed and closed, otherwise false.
|
|
199
|
+
*/
|
|
200
|
+
var ListsInternal = function (state, startLine, endLine) {
|
|
123
201
|
var _a, _b;
|
|
124
202
|
var _c, _d, _e;
|
|
125
203
|
var pos = state.bMarks[startLine] + state.tShift[startLine];
|
|
126
204
|
var max = state.eMarks[startLine];
|
|
127
205
|
var lineText = state.src.slice(pos, max);
|
|
128
|
-
// Must start with backslash to be LaTeX command
|
|
129
|
-
if (lineText.charCodeAt(0) !== 0x5c /* '\' */) {
|
|
130
|
-
return false;
|
|
131
|
-
}
|
|
132
|
-
var match = lineText.match(consts_1.BEGIN_LIST_ENV_RE);
|
|
133
|
-
if (!match) {
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
var typeList = match[1].trim();
|
|
137
|
-
if (!(0, latex_list_types_1.isListType)(typeList)) {
|
|
138
|
-
return false;
|
|
139
|
-
}
|
|
140
|
-
// In silent mode: only report that this block can start; do not modify state or emit tokens.
|
|
141
|
-
if (silent) {
|
|
142
|
-
return true;
|
|
143
|
-
}
|
|
144
206
|
var renderStart = state.md.options.renderElement && state.md.options.renderElement.startLine
|
|
145
207
|
? Number(state.md.options.renderElement.startLine)
|
|
146
208
|
: 0;
|
|
@@ -167,33 +229,29 @@ var Lists = function (state, startLine, endLine, silent) {
|
|
|
167
229
|
}
|
|
168
230
|
var items = [];
|
|
169
231
|
var haveClose = false;
|
|
170
|
-
var
|
|
232
|
+
var opaqueStack = [];
|
|
171
233
|
for (; nextLine < endLine; nextLine++) {
|
|
172
234
|
pos = state.bMarks[nextLine] + state.tShift[nextLine];
|
|
173
235
|
max = state.eMarks[nextLine];
|
|
174
236
|
lineText = state.src.slice(pos, max);
|
|
175
|
-
//
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
if (endRes.handled) {
|
|
190
|
-
continue;
|
|
191
|
-
}
|
|
192
|
-
lineText = endRes.lineText;
|
|
237
|
+
// Handle opaque envs; may consume the line or return a tail to re-parse.
|
|
238
|
+
var opaqueRes = processOpaqueLine({
|
|
239
|
+
lineText: lineText,
|
|
240
|
+
stack: opaqueStack,
|
|
241
|
+
items: items,
|
|
242
|
+
nextLine: nextLine,
|
|
243
|
+
state: state,
|
|
244
|
+
renderStart: renderStart
|
|
245
|
+
});
|
|
246
|
+
opaqueStack = opaqueRes.stack;
|
|
247
|
+
items = opaqueRes.items;
|
|
248
|
+
lineText = opaqueRes.lineText;
|
|
249
|
+
if (opaqueRes.consumedLine) {
|
|
250
|
+
continue;
|
|
193
251
|
}
|
|
194
252
|
// Handle \setcounter lines
|
|
195
253
|
if (consts_1.reSetCounter.test(lineText)) {
|
|
196
|
-
match = lineText.match(consts_1.reSetCounter);
|
|
254
|
+
var match = lineText.match(consts_1.reSetCounter);
|
|
197
255
|
if (match && ((_d = state.md.options) === null || _d === void 0 ? void 0 : _d.forLatex)) {
|
|
198
256
|
var token = state.push("setcounter", "", 0);
|
|
199
257
|
token.latex = match[0].trim();
|
|
@@ -277,10 +335,9 @@ var Lists = function (state, startLine, endLine, silent) {
|
|
|
277
335
|
}
|
|
278
336
|
}
|
|
279
337
|
if (!haveClose) {
|
|
338
|
+
// Strict mode: do not emit partial tokens (important for inline env wrapper).
|
|
280
339
|
// No explicit \end{itemize}/\end{enumerate} found — flush remaining items
|
|
281
|
-
|
|
282
|
-
(0, latex_list_items_1.ListItemsBlock)(state, items);
|
|
283
|
-
li = null;
|
|
340
|
+
return false;
|
|
284
341
|
}
|
|
285
342
|
state.line = nextLine;
|
|
286
343
|
state.startLine = startLine;
|
|
@@ -291,5 +348,54 @@ var Lists = function (state, startLine, endLine, silent) {
|
|
|
291
348
|
}
|
|
292
349
|
return true;
|
|
293
350
|
};
|
|
351
|
+
exports.ListsInternal = ListsInternal;
|
|
352
|
+
/**
|
|
353
|
+
* Block rule that parses LaTeX list environments:
|
|
354
|
+
* \begin{itemize} ... \end{itemize}
|
|
355
|
+
* \begin{enumerate} ... \end{enumerate}
|
|
356
|
+
*
|
|
357
|
+
* It:
|
|
358
|
+
* - detects list begin/end commands,
|
|
359
|
+
* - collects and splits \item content into logical items,
|
|
360
|
+
* - handles \setcounter and nested lists on the same line,
|
|
361
|
+
* - emits corresponding *_list_open, *_list_close, and list item tokens.
|
|
362
|
+
*/
|
|
363
|
+
var Lists = function (state, startLine, endLine, silent) {
|
|
364
|
+
var pos = state.bMarks[startLine] + state.tShift[startLine];
|
|
365
|
+
var max = state.eMarks[startLine];
|
|
366
|
+
var lineText = state.src.slice(pos, max);
|
|
367
|
+
// Must start with backslash to be LaTeX command
|
|
368
|
+
if (lineText.charCodeAt(0) !== 0x5c /* '\' */) {
|
|
369
|
+
return false;
|
|
370
|
+
}
|
|
371
|
+
var match = lineText.match(consts_1.BEGIN_LIST_ENV_RE);
|
|
372
|
+
if (!match) {
|
|
373
|
+
return false;
|
|
374
|
+
}
|
|
375
|
+
var typeList = match[1].trim();
|
|
376
|
+
if (!(0, latex_list_types_1.isListType)(typeList)) {
|
|
377
|
+
return false;
|
|
378
|
+
}
|
|
379
|
+
// Buffer tokens first (do not write into the real state during parsing)
|
|
380
|
+
var bufferedState = (0, latex_list_env_engine_1.createBufferedState)(state);
|
|
381
|
+
// Run the original logic on bufferedState instead of state
|
|
382
|
+
var ok = (0, exports.ListsInternal)(bufferedState, startLine, endLine); // we'll define it
|
|
383
|
+
if (!ok)
|
|
384
|
+
return false;
|
|
385
|
+
// In silent mode: only report that this block can start; do not modify state or emit tokens.
|
|
386
|
+
if (silent) {
|
|
387
|
+
return true;
|
|
388
|
+
}
|
|
389
|
+
// Flush tokens to the real state at the end
|
|
390
|
+
(0, latex_list_env_engine_1.flushBufferedTokens)(state, bufferedState.tokens);
|
|
391
|
+
// Sync state fields modified by parsing
|
|
392
|
+
state.line = bufferedState.line;
|
|
393
|
+
state.startLine = bufferedState.startLine;
|
|
394
|
+
state.parentType = bufferedState.parentType;
|
|
395
|
+
state.level = bufferedState.level;
|
|
396
|
+
state.prentLevel = bufferedState.prentLevel;
|
|
397
|
+
state.env = bufferedState.env;
|
|
398
|
+
return true;
|
|
399
|
+
};
|
|
294
400
|
exports.Lists = Lists;
|
|
295
401
|
//# sourceMappingURL=latex-list-env-block.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latex-list-env-block.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-env-block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"latex-list-env-block.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-env-block.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type Token from 'markdown-it/lib/token';
|
|
2
|
+
import { BufferedBlockState } from "./latex-list-types";
|
|
3
|
+
/** Shallow clone but shift known position fields by baseOffset */
|
|
4
|
+
export declare const shiftTokenAbsolutePositions: (tok: any, baseOffset: number) => any;
|
|
5
|
+
/**
|
|
6
|
+
* Builds a minimal StateBlock-like object from a raw LaTeX environment string.
|
|
7
|
+
*
|
|
8
|
+
* Notes:
|
|
9
|
+
* - Normalizes CRLF to LF.
|
|
10
|
+
* - Computes `bMarks/eMarks/tShift` so `state.src.slice(bMarks[i]+tShift[i], eMarks[i])`
|
|
11
|
+
* matches each logical line (without a trailing "\n" after the last line).
|
|
12
|
+
* - `env` is shallow-copied and forced to `{ isBlock: true }` for downstream checks.
|
|
13
|
+
*/
|
|
14
|
+
export declare const buildBlockStateFromRaw: (md: any, raw: string, baseEnv: any) => any;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a buffered state that collects tokens into a local array instead of
|
|
17
|
+
* mutating the original StateBlock tokens immediately.
|
|
18
|
+
*
|
|
19
|
+
* Useful when you want "all-or-nothing" token emission (e.g., for inline reuse,
|
|
20
|
+
* strict parsing, rollback on failure).
|
|
21
|
+
*/
|
|
22
|
+
export declare const createBufferedState: (state: StateBlock) => BufferedBlockState;
|
|
23
|
+
/**
|
|
24
|
+
* Run ListsInternal on raw env and return produced tokens.
|
|
25
|
+
* baseOffset used later to shift positions to absolute.
|
|
26
|
+
*/
|
|
27
|
+
export declare const parseListEnvRawToTokens: (md: any, raw: string, baseEnv: any) => {
|
|
28
|
+
ok: boolean;
|
|
29
|
+
tokens: any[];
|
|
30
|
+
state: any;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Push cloned tokens into inline state and shift local positions by baseOffset.
|
|
34
|
+
*/
|
|
35
|
+
export declare const flushTokensToInline: (inlineState: StateInline, tokens: any[], baseOffset: number) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Flushes buffered tokens into the real StateBlock using state.push().
|
|
38
|
+
* This preserves markdown-it internal level mechanics.
|
|
39
|
+
*
|
|
40
|
+
* NOTE:
|
|
41
|
+
* - Do not blindly overwrite `level` during assignment, since state.push() already
|
|
42
|
+
* applies correct nesting transitions. Prefer safeAssignToken() that skips level.
|
|
43
|
+
*/
|
|
44
|
+
export declare const flushBufferedTokens: (state: StateBlock, buffered: Token[]) => void;
|
|
45
|
+
/**
|
|
46
|
+
* Safe assign: copy custom fields but do NOT overwrite core ones that markdown-it sets.
|
|
47
|
+
*/
|
|
48
|
+
export declare const safeAssignToken: (target: any, src: any) => any;
|