mathpix-markdown-it 2.0.29 → 2.0.31

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 (75) hide show
  1. package/es5/bundle.js +2 -2
  2. package/es5/index.js +2 -2
  3. package/lib/markdown/common/consts.d.ts +28 -0
  4. package/lib/markdown/common/consts.js +46 -2
  5. package/lib/markdown/common/consts.js.map +1 -1
  6. package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.d.ts +5 -1
  7. package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +15 -5
  8. package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
  9. package/lib/markdown/md-block-rule/helper.d.ts +16 -1
  10. package/lib/markdown/md-block-rule/helper.js +93 -16
  11. package/lib/markdown/md-block-rule/helper.js.map +1 -1
  12. package/lib/markdown/md-block-rule/renewcommand.js +1 -1
  13. package/lib/markdown/md-block-rule/renewcommand.js.map +1 -1
  14. package/lib/markdown/md-inline-rule/setcounter-section.js +1 -2
  15. package/lib/markdown/md-inline-rule/setcounter-section.js.map +1 -1
  16. package/lib/markdown/md-latex-lists-env/index.d.ts +16 -0
  17. package/lib/markdown/md-latex-lists-env/index.js +55 -0
  18. package/lib/markdown/md-latex-lists-env/index.js.map +1 -0
  19. package/lib/markdown/md-latex-lists-env/latex-list-common.d.ts +31 -0
  20. package/lib/markdown/md-latex-lists-env/latex-list-common.js +78 -0
  21. package/lib/markdown/md-latex-lists-env/latex-list-common.js.map +1 -0
  22. package/lib/markdown/md-latex-lists-env/latex-list-env-block.d.ts +13 -0
  23. package/lib/markdown/md-latex-lists-env/latex-list-env-block.js +295 -0
  24. package/lib/markdown/md-latex-lists-env/latex-list-env-block.js.map +1 -0
  25. package/lib/markdown/md-latex-lists-env/latex-list-env-inline.d.ts +59 -0
  26. package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js +219 -0
  27. package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js.map +1 -0
  28. package/lib/markdown/md-latex-lists-env/latex-list-items.d.ts +75 -0
  29. package/lib/markdown/md-latex-lists-env/latex-list-items.js +235 -0
  30. package/lib/markdown/md-latex-lists-env/latex-list-items.js.map +1 -0
  31. package/lib/markdown/md-latex-lists-env/latex-list-tokens.d.ts +74 -0
  32. package/lib/markdown/md-latex-lists-env/latex-list-tokens.js +290 -0
  33. package/lib/markdown/md-latex-lists-env/latex-list-tokens.js.map +1 -0
  34. package/lib/markdown/md-latex-lists-env/latex-list-types.d.ts +52 -0
  35. package/lib/markdown/md-latex-lists-env/latex-list-types.js +13 -0
  36. package/lib/markdown/md-latex-lists-env/latex-list-types.js.map +1 -0
  37. package/lib/markdown/md-latex-lists-env/list-state.d.ts +48 -0
  38. package/lib/markdown/md-latex-lists-env/list-state.js +86 -0
  39. package/lib/markdown/md-latex-lists-env/list-state.js.map +1 -0
  40. package/lib/markdown/md-latex-lists-env/re-level.d.ts +62 -0
  41. package/lib/markdown/md-latex-lists-env/re-level.js +172 -0
  42. package/lib/markdown/md-latex-lists-env/re-level.js.map +1 -0
  43. package/lib/markdown/md-latex-lists-env/render-latex-list-env.d.ts +55 -0
  44. package/lib/markdown/md-latex-lists-env/render-latex-list-env.js +556 -0
  45. package/lib/markdown/md-latex-lists-env/render-latex-list-env.js.map +1 -0
  46. package/lib/markdown/md-theorem/block-rule.js +11 -1
  47. package/lib/markdown/md-theorem/block-rule.js.map +1 -1
  48. package/lib/markdown/md-theorem/inline-rule.js +1 -2
  49. package/lib/markdown/md-theorem/inline-rule.js.map +1 -1
  50. package/lib/markdown/mdPluginConfigured.d.ts +2 -1
  51. package/lib/markdown/mdPluginConfigured.js +2 -2
  52. package/lib/markdown/mdPluginConfigured.js.map +1 -1
  53. package/lib/markdown/mdPluginText.js +2 -0
  54. package/lib/markdown/mdPluginText.js.map +1 -1
  55. package/lib/markdown/utils.d.ts +7 -0
  56. package/lib/markdown/utils.js +15 -1
  57. package/lib/markdown/utils.js.map +1 -1
  58. package/lib/styles/styles-lists.d.ts +1 -1
  59. package/lib/styles/styles-lists.js +1 -1
  60. package/lib/styles/styles-lists.js.map +1 -1
  61. package/package.json +1 -1
  62. package/lib/markdown/md-block-rule/lists/index.d.ts +0 -9
  63. package/lib/markdown/md-block-rule/lists/index.js +0 -637
  64. package/lib/markdown/md-block-rule/lists/index.js.map +0 -1
  65. package/lib/markdown/md-block-rule/lists/re-level.d.ts +0 -30
  66. package/lib/markdown/md-block-rule/lists/re-level.js +0 -162
  67. package/lib/markdown/md-block-rule/lists/re-level.js.map +0 -1
  68. package/lib/markdown/md-inline-rule/lists.d.ts +0 -5
  69. package/lib/markdown/md-inline-rule/lists.js +0 -174
  70. package/lib/markdown/md-inline-rule/lists.js.map +0 -1
  71. package/lib/markdown/md-renderer-rules/render-lists.d.ts +0 -7
  72. package/lib/markdown/md-renderer-rules/render-lists.js +0 -339
  73. package/lib/markdown/md-renderer-rules/render-lists.js.map +0 -1
  74. package/lib/markdown/mdPluginLists.js +0 -60
  75. package/lib/markdown/mdPluginLists.js.map +0 -1
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processListChildToken = exports.setTokenCloseList = exports.ListOpen = exports.setTokenOpenList = exports.setTokenListItemOpenBlock = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var list_state_1 = require("./list-state");
6
+ var latex_list_types_1 = require("./latex-list-types");
7
+ var re_level_1 = require("./re-level");
8
+ var latex_list_common_1 = require("./latex-list-common");
9
+ var consts_1 = require("../common/consts");
10
+ /**
11
+ * Creates an opening list-item token (<li>) for block-style LaTeX list items.
12
+ * Handles marker parsing, enumeration start values, nesting metadata,
13
+ * and updates the internal list-level state (item counters).
14
+ *
15
+ * @param state - Markdown-It state object
16
+ * @param startLine - Starting line number of the list item
17
+ * @param endLine - Ending line number of the list item
18
+ * @param marker - Optional raw \item[...] marker string
19
+ * @param li - Optional enumeration start value (e.g., \setcounter)
20
+ * @param itemizeLevelTokens - Pre-parsed bullet tokens for itemize levels
21
+ * @param enumerateLevelTypes - Current enumerate list-style types
22
+ * @param itemizeLevelContents - Raw bullet text for each itemize level
23
+ */
24
+ var setTokenListItemOpenBlock = function (state, startLine, endLine, marker, li, itemizeLevelTokens, enumerateLevelTypes, itemizeLevelContents) {
25
+ var _a;
26
+ // Check current list depth and close previous item if needed
27
+ (0, latex_list_common_1.closeOpenListItemIfNeeded)(state);
28
+ // Create opening <li> token
29
+ var token = state.push('latex_list_item_open', 'li', 1);
30
+ (0, list_state_1.incrementItemCount)();
31
+ token.meta = { isBlock: true };
32
+ token.parentType = ((_a = state.types) === null || _a === void 0 ? void 0 : _a.length) > 0
33
+ ? state.types[state.types.length - 1]
34
+ : '';
35
+ // Parse marker (e.g., \item[abc])
36
+ if (marker !== undefined) {
37
+ token.marker = marker.trim();
38
+ var parsedMarkerTokens = [];
39
+ state.md.inline.parse(marker, state.md, state.env, parsedMarkerTokens);
40
+ token.markerTokens = parsedMarkerTokens;
41
+ }
42
+ // Apply enumeration start value
43
+ if ((li === null || li === void 0 ? void 0 : li.value) !== undefined) {
44
+ token.startValue = li.value;
45
+ token.attrSet("value", String(li.value));
46
+ li = null;
47
+ }
48
+ // Parent metadata
49
+ token.parentStart = state.startLine;
50
+ token.map = [startLine, endLine];
51
+ token.prentLevel = state.prentLevel;
52
+ // Assign list-type metadata
53
+ token.itemizeLevel = itemizeLevelTokens;
54
+ token.itemizeLevelContents = itemizeLevelContents;
55
+ token.enumerateLevel = enumerateLevelTypes;
56
+ };
57
+ exports.setTokenListItemOpenBlock = setTokenListItemOpenBlock;
58
+ /**
59
+ * Creates an opening token for LaTeX list environments (\begin{itemize}, \begin{enumerate}).
60
+ * Updates list nesting state, parent tracking, and attaches itemize/enumerate
61
+ * styling metadata used for rendering markers and list formatting.
62
+ *
63
+ * @param state - Markdown-It processing state
64
+ * @param startLine - Line number where the list begins
65
+ * @param endLine - Line number where the list ends
66
+ * @param type - List type ("itemize" or "enumerate")
67
+ * @param itemizeLevelTokens - Pre-parsed itemize bullet tokens
68
+ * @param enumerateLevelTypes - List-style types for enumerate levels
69
+ * @param itemizeLevelContents - Raw bullet text for each itemize level
70
+ */
71
+ var setTokenOpenList = function (state, startLine, endLine, type, itemizeLevelTokens, enumerateLevelTypes, itemizeLevelContents) {
72
+ // Determine token type and HTML tag
73
+ var _a = (0, latex_list_common_1.getListTokenTypes)(type), openType = _a.openType, htmlTag = _a.htmlTag;
74
+ // itemize_list_open or enumerate_list_open
75
+ var token = state.push(openType, htmlTag, 1);
76
+ (0, latex_list_common_1.applyListOpenState)(state, type, token);
77
+ // Attach styling metadata
78
+ token.itemizeLevel = itemizeLevelTokens;
79
+ token.itemizeLevelContents = itemizeLevelContents;
80
+ token.enumerateLevel = enumerateLevelTypes;
81
+ token.prentLevel = state.prentLevel;
82
+ // Map source lines
83
+ if (startLine > -1 && endLine > -1) {
84
+ state.startLine = startLine;
85
+ token.map = [startLine, endLine];
86
+ }
87
+ return token;
88
+ };
89
+ exports.setTokenOpenList = setTokenOpenList;
90
+ /**
91
+ * Parses a LaTeX list environment beginning on the current line
92
+ * (e.g., \begin{itemize} or \begin{enumerate}), opens the
93
+ * corresponding list token, and processes any inline content
94
+ * that appears on the same line after \begin{...}.
95
+ *
96
+ * Returns:
97
+ * - iOpen: how many list environments were opened
98
+ * - tokenStart: the created *_list_open token, if any
99
+ * - li: optional enumerate start value extracted via \setcounter
100
+ */
101
+ var ListOpen = function (state, startLine, lineText, itemizeLevelTokens, enumerateLevelTypes, itemizeLevelContents) {
102
+ var e_1, _a;
103
+ var tokenStart = null;
104
+ var iOpen = 0;
105
+ var padding = 0;
106
+ var li = null;
107
+ // Line must start with '\' to be a LaTeX command
108
+ if (lineText.charCodeAt(0) !== 0x5c /* '\' */) {
109
+ return { iOpen: iOpen, tokenStart: tokenStart, li: li };
110
+ }
111
+ var match = lineText.match(consts_1.BEGIN_LIST_ENV_RE);
112
+ // If we are not already inside a list and no \begin{itemize/enumerate} found
113
+ if (!match && state.parentType !== "itemize" && state.parentType !== "enumerate") {
114
+ return { iOpen: iOpen, tokenStart: tokenStart, li: li };
115
+ }
116
+ // Ensure itemize level tokens are prepared
117
+ (0, re_level_1.SetItemizeLevelTokens)(state);
118
+ if (!match) {
119
+ // Already in a list, but no new begin here — nothing more to do
120
+ return { iOpen: iOpen, tokenStart: tokenStart, li: li };
121
+ }
122
+ var strAfter = lineText.slice(match.index + match[0].length);
123
+ var rawType = match[1].trim();
124
+ if (!(0, latex_list_types_1.isListType)(rawType)) {
125
+ return { iOpen: iOpen, tokenStart: tokenStart, li: li };
126
+ }
127
+ var listType = rawType;
128
+ tokenStart = (0, exports.setTokenOpenList)(state, startLine, startLine + 1, listType, itemizeLevelTokens, enumerateLevelTypes, itemizeLevelContents);
129
+ iOpen++;
130
+ // Process inline content after \begin{...}
131
+ if (strAfter && strAfter.trim().length > 0) {
132
+ var children = [];
133
+ state.env.parentType = state.parentType;
134
+ state.env.isBlock = true;
135
+ state.env.prentLevel = state.prentLevel;
136
+ state.md.inline.parse(strAfter, state.md, state.env, children);
137
+ // Context shared across child token processing
138
+ var ctx = {
139
+ li: li,
140
+ padding: padding,
141
+ iOpen: iOpen,
142
+ itemizeLevelTokens: itemizeLevelTokens,
143
+ enumerateLevelTypes: enumerateLevelTypes,
144
+ itemizeLevelContents: itemizeLevelContents
145
+ };
146
+ try {
147
+ // Process each inline child token
148
+ for (var children_1 = tslib_1.__values(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {
149
+ var child = children_1_1.value;
150
+ (0, exports.processListChildToken)(state, {
151
+ startLine: startLine,
152
+ endLine: startLine,
153
+ content: ''
154
+ }, child, ctx);
155
+ }
156
+ }
157
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
158
+ finally {
159
+ try {
160
+ if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);
161
+ }
162
+ finally { if (e_1) throw e_1.error; }
163
+ }
164
+ // Update context after processing children
165
+ li = ctx.li;
166
+ padding = ctx.padding;
167
+ iOpen = ctx.iOpen;
168
+ state.env.isBlock = false;
169
+ }
170
+ return { iOpen: iOpen, tokenStart: tokenStart, li: li };
171
+ };
172
+ exports.ListOpen = ListOpen;
173
+ /**
174
+ * Closes the current LaTeX list environment (\end{itemize} / \end{enumerate}).
175
+ *
176
+ * - Closes any still-open list item if needed
177
+ * - Emits the appropriate *_list_close token
178
+ * - Updates list nesting levels and internal list-level state
179
+ *
180
+ * @param state - Markdown-It processing state
181
+ * @param startLine - Line where the list block starts
182
+ * @param endLine - Line where the list block ends
183
+ * @returns The created closing list token
184
+ */
185
+ var setTokenCloseList = function (state, startLine, endLine) {
186
+ var _a;
187
+ // Close an open <li> if there is one
188
+ (0, latex_list_common_1.closeOpenListItemIfNeeded)(state);
189
+ var currentListType = (_a = state.types) === null || _a === void 0 ? void 0 : _a[state.types.length - 1];
190
+ var isItemize = currentListType === latex_list_types_1.ListType.itemize;
191
+ var _b = (0, latex_list_common_1.getListTokenTypes)(isItemize ? latex_list_types_1.ListType.itemize : latex_list_types_1.ListType.enumerate), closeType = _b.closeType, htmlTag = _b.htmlTag;
192
+ // itemize_list_close or enumerate_list_close
193
+ var token = state.push(closeType, htmlTag, -1);
194
+ if (startLine > -1 && endLine > -1) {
195
+ token.map = [startLine, endLine];
196
+ }
197
+ (0, latex_list_common_1.applyListCloseState)(state, token);
198
+ if (state.types && state.types.length > 0) {
199
+ state.types.pop();
200
+ }
201
+ };
202
+ exports.setTokenCloseList = setTokenCloseList;
203
+ /**
204
+ * Processes a single inline token inside a LaTeX list item.
205
+ *
206
+ * This function:
207
+ * - Applies \setcounter values to list items (\item)
208
+ * - Handles custom list markers and computes marker padding
209
+ * - Updates parent metadata (type, nesting level, line map)
210
+ * - Adjusts list nesting state for itemize/enumerate environments
211
+ * - Attaches itemize/enumerate level styling metadata
212
+ *
213
+ * @param state - The Markdown-It state object
214
+ * @param item - Parsed list item metadata (start/end line and content)
215
+ * @param child - Inline token to process
216
+ * @param ctx - Shared context for updating list state (padding, counters, levels)
217
+ */
218
+ var processListChildToken = function (state, item, child, ctx) {
219
+ var _a, _b, _c;
220
+ // 1. Handle \setcounter
221
+ if (child.type === 'setcounter') {
222
+ ctx.li = { value: child.content };
223
+ if (((_a = state.md.options) === null || _a === void 0 ? void 0 : _a.forLatex) && child.latex) {
224
+ var token_1 = state.push("setcounter", "", 0);
225
+ token_1.latex = child.latex;
226
+ }
227
+ return;
228
+ }
229
+ // 2. Push token to state
230
+ state.tokens.push(child);
231
+ var token = child;
232
+ // 3. Apply enumerate start value for list item
233
+ if (token.type === 'latex_list_item_open' && ((_b = ctx.li) === null || _b === void 0 ? void 0 : _b.hasOwnProperty('value'))) {
234
+ token.startValue = ctx.li.value;
235
+ token.attrSet('value', ctx.li.value.toString());
236
+ ctx.li = null;
237
+ }
238
+ // 4. Handle custom marker and compute padding
239
+ if (token.hasOwnProperty('marker')) {
240
+ var paddingChild = 0;
241
+ var markerTokens = (_c = token.markerTokens) !== null && _c !== void 0 ? _c : [];
242
+ for (var i = 0; i < markerTokens.length; i++) {
243
+ if (markerTokens[i].type === 'text') {
244
+ paddingChild += markerTokens[i].content.length;
245
+ }
246
+ }
247
+ if (paddingChild > ctx.padding) {
248
+ ctx.padding = paddingChild;
249
+ }
250
+ }
251
+ // 5. Parent metadata
252
+ token.parentType = state.types && state.types.length > 0
253
+ ? state.types[state.types.length - 1]
254
+ : '';
255
+ token.parentStart = state.startLine;
256
+ token.map = [item.startLine, item.endLine + 1];
257
+ if (token.hasOwnProperty('inlinePos')) {
258
+ token.bMarks = token.inlinePos.start_content;
259
+ }
260
+ // 6. Logical nesting level for this token
261
+ token.prentLevel = token.type === "latex_list_item_open"
262
+ ? state.prentLevel + 1
263
+ : state.prentLevel;
264
+ // 7. Open / close list environments
265
+ if (token.type === 'enumerate_list_open' || token.type === 'itemize_list_open') {
266
+ state.prentLevel++;
267
+ if (token.type === 'itemize_list_open') {
268
+ state.types.push('itemize');
269
+ }
270
+ else {
271
+ state.types.push('enumerate');
272
+ }
273
+ ctx.iOpen++;
274
+ }
275
+ else {
276
+ if (token.type === 'enumerate_list_close' || token.type === 'itemize_list_close') {
277
+ state.prentLevel--;
278
+ if (state.types && state.types.length > 0) {
279
+ state.types.pop();
280
+ }
281
+ ctx.iOpen--;
282
+ }
283
+ }
284
+ // 8. Attach list-level styling metadata
285
+ token.itemizeLevel = ctx.itemizeLevelTokens;
286
+ token.itemizeLevelContents = ctx.itemizeLevelContents;
287
+ token.enumerateLevel = ctx.enumerateLevelTypes;
288
+ };
289
+ exports.processListChildToken = processListChildToken;
290
+ //# sourceMappingURL=latex-list-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex-list-tokens.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import type Token from 'markdown-it/lib/token';
2
+ export declare enum ListType {
3
+ itemize = "itemize",
4
+ enumerate = "enumerate"
5
+ }
6
+ export interface ListInlineContext {
7
+ li: {
8
+ value: any;
9
+ } | null;
10
+ padding: number;
11
+ iOpen: number;
12
+ itemizeLevelTokens: Token[][];
13
+ enumerateLevelTypes: string[];
14
+ itemizeLevelContents: string[];
15
+ }
16
+ export interface ParsedListItem {
17
+ startLine: number;
18
+ endLine: number;
19
+ content: string;
20
+ }
21
+ export interface ListItemsResult {
22
+ iOpen: number;
23
+ padding: number;
24
+ }
25
+ export interface ListOpenResult {
26
+ iOpen: number;
27
+ tokenStart: Token | null;
28
+ li?: {
29
+ value: number;
30
+ } | null;
31
+ }
32
+ /**
33
+ * Result of handling a potential inline `\begin{lstlisting}` occurrence.
34
+ *
35
+ * @property handled Whether the current line was handled (matched a begin).
36
+ * @property envDepth Updated lstlisting environment depth after handling.
37
+ * @property items Aggregated items list (possibly updated).
38
+ * @property lineText The (unchanged) original line text.
39
+ */
40
+ export interface LstEndResult {
41
+ handled: boolean;
42
+ envDepth: number;
43
+ items: any[];
44
+ lineText: string;
45
+ }
46
+ export declare const isListType: (value: string) => value is ListType;
47
+ export interface CustomMarkerHtmlResult {
48
+ htmlMarker: string;
49
+ markerType: string;
50
+ textContent: string;
51
+ isMarkerEmpty: boolean;
52
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isListType = exports.ListType = void 0;
4
+ var ListType;
5
+ (function (ListType) {
6
+ ListType["itemize"] = "itemize";
7
+ ListType["enumerate"] = "enumerate";
8
+ })(ListType = exports.ListType || (exports.ListType = {}));
9
+ var isListType = function (value) {
10
+ return Object.values(ListType).includes(value);
11
+ };
12
+ exports.isListType = isListType;
13
+ //# sourceMappingURL=latex-list-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex-list-types.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-types.ts"],"names":[],"mappings":";;;AAEA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;AACzB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AA2CM,IAAM,UAAU,GAAG,UAAC,KAAa;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAiB,CAAC,CAAC;AAC7D,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * State manager for nested LaTeX list environments (e.g., \begin{itemize}, \item).
3
+ *
4
+ * This module tracks the current depth of nested lists and the number of \item
5
+ * entries opened at each depth level during parsing.
6
+ *
7
+ * Depth levels:
8
+ * -1 — outside of any list
9
+ * 0 — first list level
10
+ * 1 — nested list level
11
+ * ...
12
+ */
13
+ export interface ListLevelState {
14
+ openItems: number;
15
+ }
16
+ /**
17
+ * Reset all list-related state.
18
+ * Should be called before starting a new parsing session.
19
+ */
20
+ export declare const resetListState: () => void;
21
+ /**
22
+ * Enter a new nested list level (e.g., encountering \begin{itemize}).
23
+ * Automatically creates state storage for the new level if needed.
24
+ */
25
+ export declare const enterListLevel: () => void;
26
+ /**
27
+ * Leave the current list level (e.g., encountering \end{itemize}).
28
+ * If already outside lists, logs a warning.
29
+ */
30
+ export declare const leaveListLevel: () => void;
31
+ /**
32
+ * Get the state object for a specific depth level.
33
+ *
34
+ * @param depth - The list depth level.
35
+ * @returns State object or undefined.
36
+ */
37
+ export declare const getListLevelState: (depth: number) => ListLevelState | undefined;
38
+ /**
39
+ * Get the state object for the current depth level.
40
+ *
41
+ * @returns State object or undefined.
42
+ */
43
+ export declare const getCurrentListLevelState: () => ListLevelState | undefined;
44
+ /**
45
+ * Increment the number of opened \item commands on the current list level.
46
+ * Logs a warning if called when no list level is active.
47
+ */
48
+ export declare const incrementItemCount: () => void;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * State manager for nested LaTeX list environments (e.g., \begin{itemize}, \item).
4
+ *
5
+ * This module tracks the current depth of nested lists and the number of \item
6
+ * entries opened at each depth level during parsing.
7
+ *
8
+ * Depth levels:
9
+ * -1 — outside of any list
10
+ * 0 — first list level
11
+ * 1 — nested list level
12
+ * ...
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.incrementItemCount = exports.getCurrentListLevelState = exports.getListLevelState = exports.leaveListLevel = exports.enterListLevel = exports.resetListState = void 0;
16
+ // Internal state
17
+ var listLevels = [];
18
+ var currentListDepth = -1; // -1 means “not inside a list”
19
+ /**
20
+ * Reset all list-related state.
21
+ * Should be called before starting a new parsing session.
22
+ */
23
+ var resetListState = function () {
24
+ listLevels = [];
25
+ currentListDepth = -1;
26
+ };
27
+ exports.resetListState = resetListState;
28
+ /**
29
+ * Enter a new nested list level (e.g., encountering \begin{itemize}).
30
+ * Automatically creates state storage for the new level if needed.
31
+ */
32
+ var enterListLevel = function () {
33
+ currentListDepth++;
34
+ if (!listLevels[currentListDepth]) {
35
+ listLevels[currentListDepth] = { openItems: 0 };
36
+ }
37
+ };
38
+ exports.enterListLevel = enterListLevel;
39
+ /**
40
+ * Leave the current list level (e.g., encountering \end{itemize}).
41
+ * If already outside lists, logs a warning.
42
+ */
43
+ var leaveListLevel = function () {
44
+ if (currentListDepth < 0) {
45
+ console.warn('[list-state] Attempt to leave list level while depth = -1');
46
+ return;
47
+ }
48
+ currentListDepth--;
49
+ };
50
+ exports.leaveListLevel = leaveListLevel;
51
+ /**
52
+ * Get the state object for a specific depth level.
53
+ *
54
+ * @param depth - The list depth level.
55
+ * @returns State object or undefined.
56
+ */
57
+ var getListLevelState = function (depth) {
58
+ return listLevels[depth];
59
+ };
60
+ exports.getListLevelState = getListLevelState;
61
+ /**
62
+ * Get the state object for the current depth level.
63
+ *
64
+ * @returns State object or undefined.
65
+ */
66
+ var getCurrentListLevelState = function () {
67
+ return listLevels[currentListDepth];
68
+ };
69
+ exports.getCurrentListLevelState = getCurrentListLevelState;
70
+ /**
71
+ * Increment the number of opened \item commands on the current list level.
72
+ * Logs a warning if called when no list level is active.
73
+ */
74
+ var incrementItemCount = function () {
75
+ var level = (0, exports.getCurrentListLevelState)();
76
+ if (!level) {
77
+ console.warn('[list-state] incrementItemCount called outside of any list level', {
78
+ currentListDepth: currentListDepth,
79
+ listLevels: listLevels,
80
+ });
81
+ return;
82
+ }
83
+ level.openItems += 1;
84
+ };
85
+ exports.incrementItemCount = incrementItemCount;
86
+ //# sourceMappingURL=list-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-state.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/list-state.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAMH,iBAAiB;AACjB,IAAI,UAAU,GAAqB,EAAE,CAAC;AACtC,IAAI,gBAAgB,GAAW,CAAC,CAAC,CAAC,CAAC,+BAA+B;AAElE;;;GAGG;AACI,IAAM,cAAc,GAAG;IAC5B,UAAU,GAAG,EAAE,CAAC;IAChB,gBAAgB,GAAG,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AAHW,QAAA,cAAc,kBAGzB;AAEF;;;GAGG;AACI,IAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,CAAC;IAEnB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACjC,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;KACjD;AACH,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEF;;;GAGG;AACI,IAAM,cAAc,GAAG;IAC5B,IAAI,gBAAgB,GAAG,CAAC,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO;KACR;IACD,gBAAgB,EAAE,CAAC;AACrB,CAAC,CAAC;AANW,QAAA,cAAc,kBAMzB;AAEF;;;;;GAKG;AACI,IAAM,iBAAiB,GAAG,UAAC,KAAa;IAC7C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B;AAEF;;;;GAIG;AACI,IAAM,wBAAwB,GAAG;IACtC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC,CAAC;AAFW,QAAA,wBAAwB,4BAEnC;AAEF;;;GAGG;AACI,IAAM,kBAAkB,GAAG;IAChC,IAAM,KAAK,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CACV,kEAAkE,EAClE;YACE,gBAAgB,kBAAA;YAChB,UAAU,YAAA;SACX,CACF,CAAC;QACF,OAAO;KACR;IACD,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAbW,QAAA,kBAAkB,sBAa7B"}
@@ -0,0 +1,62 @@
1
+ import type Token from "markdown-it/lib/token";
2
+ import type StateBlock from 'markdown-it/lib/rules_block/state_block';
3
+ import type StateInline from 'markdown-it/lib/rules_inline/state_inline';
4
+ /** Default LaTeX itemize bullet styles */
5
+ export declare let itemizeLevelDefaults: string[];
6
+ /** Default enumerate styles for CSS list-style-type */
7
+ export declare let enumerateLevelDefaults: string[];
8
+ /** Active itemize levels (mutable state) */
9
+ export declare let itemizeLevel: string[];
10
+ /** Active enumerate levels (mutable state) */
11
+ export declare let enumerateLevel: string[];
12
+ /** Parsed tokens for itemize bullets */
13
+ export declare let itemizeLevelTokens: Token[][];
14
+ /**
15
+ * Reset and return default itemize bullet definitions.
16
+ */
17
+ export declare const SetDefaultItemizeLevel: () => string[];
18
+ /**
19
+ * Reset and return default enumerate level definitions.
20
+ */
21
+ export declare const SetDefaultEnumerateLevel: () => string[];
22
+ /**
23
+ * Return itemize level array (or fallback to defaults).
24
+ */
25
+ export declare const GetItemizeLevel: (data?: string[] | null) => string[];
26
+ /**
27
+ * Return enumerate level array (or fallback to defaults).
28
+ */
29
+ export declare const GetEnumerateLevel: (data?: string[] | null) => string[];
30
+ /** Return structure of parsed tokens + raw bullet content */
31
+ export interface ItemizeLevelTokenResult {
32
+ tokens: Token[][];
33
+ contents: string[];
34
+ }
35
+ /**
36
+ * Parse bullet tokens for all itemize levels.
37
+ */
38
+ export declare const SetItemizeLevelTokens: (state: StateBlock | StateInline) => ItemizeLevelTokenResult;
39
+ /**
40
+ * Parse bullet tokens for a specific itemize level index.
41
+ */
42
+ export declare const SetItemizeLevelTokensByIndex: (state: StateBlock | StateInline, index: number) => void;
43
+ /**
44
+ * Returns cached itemize level tokens or provided subset.
45
+ */
46
+ export declare const GetItemizeLevelTokens: (data?: Token[][] | null) => Token[][];
47
+ /**
48
+ * Get both bullet content and parsed tokens from state.
49
+ */
50
+ export declare const GetItemizeLevelTokensByState: (state: StateBlock | StateInline) => ItemizeLevelTokenResult;
51
+ /**
52
+ * Change list style for \labelitemi, \labelenumi etc.
53
+ * Supports both itemize and enumerate levels.
54
+ */
55
+ export declare const ChangeLevel: (state: StateBlock | StateInline, data: {
56
+ command?: string;
57
+ params?: string;
58
+ }) => boolean;
59
+ /**
60
+ * Clears stored itemize level token cache.
61
+ */
62
+ export declare const clearItemizeLevelTokens: () => void;