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,556 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.render_enumerate_list_close = exports.render_itemize_list_close = exports.render_latex_list_item_close = exports.render_latex_list_item_open = exports.render_item_inline = exports.render_enumerate_list_open = exports.render_itemize_list_open = void 0;
4
+ var rules_1 = require("../rules");
5
+ var re_level_1 = require("./re-level");
6
+ var render_tabular_1 = require("../md-renderer-rules/render-tabular");
7
+ var common_1 = require("../highlight/common");
8
+ var convert_scv_to_base64_1 = require("../md-svg-to-base64/convert-scv-to-base64");
9
+ var consts_1 = require("../common/consts");
10
+ var utils_1 = require("../utils");
11
+ var level_itemize = 0;
12
+ var level_enumerate = 0;
13
+ var list_injectLineNumbers = function (tokens, idx, className) {
14
+ if (className === void 0) { className = ''; }
15
+ var line, endLine, listLine;
16
+ if (tokens[idx].map) {
17
+ line = tokens[idx].map[0];
18
+ endLine = tokens[idx].map[1];
19
+ listLine = [];
20
+ for (var i = line; i < endLine; i++) {
21
+ listLine.push(i);
22
+ }
23
+ tokens[idx].attrJoin("class", className + ' ' + rules_1.PREVIEW_PARAGRAPH_PREFIX + String(line)
24
+ + ' ' + rules_1.PREVIEW_LINE_CLASS + ' ' + listLine.join(' '));
25
+ tokens[idx].attrJoin("data_line_start", "".concat(String(line)));
26
+ tokens[idx].attrJoin("data_line_end", "".concat(String(endLine - 1)));
27
+ tokens[idx].attrJoin("data_line", "".concat(String([line, endLine])));
28
+ tokens[idx].attrJoin("count_line", "".concat(String(endLine - line)));
29
+ if (tokens[idx].hasOwnProperty('parentStart')) {
30
+ tokens[idx].attrJoin("data_parent_line_start", "".concat(String(tokens[idx].parentStart)));
31
+ }
32
+ }
33
+ else {
34
+ tokens[idx].attrJoin("class", className);
35
+ }
36
+ };
37
+ /**
38
+ * Renderer for opening an itemize list (`itemize_list_open`).
39
+ *
40
+ * Responsibilities:
41
+ * - Tracks nested itemize depth with `level_itemize`.
42
+ * - Adds a base "itemize" class and optional line-numbering attributes.
43
+ * - For DOCX output (`options.forDocx`), computes custom bullet metadata
44
+ * (`data-custom-marker-type`, `data-custom-marker-content`) based on
45
+ * precomputed `itemizeLevel` and `itemizeLevelContents`.
46
+ * - Emits:
47
+ * - `<ul ... style="list-style-type: none">` for nested lists,
48
+ * - optionally wraps nested `<ul>` in `<li>` when a list is directly
49
+ * nested under another `itemize_list_open`.
50
+ * - For top-level lists, respects `data-padding-inline-start` attribute
51
+ * (translating it into inline CSS `padding-inline-start`).
52
+ */
53
+ var render_itemize_list_open = function (tokens, idx, options, env, slf) {
54
+ var token = tokens[idx];
55
+ // Reset nesting level for top-level lists
56
+ if (token.level === 0) {
57
+ level_itemize = 0;
58
+ }
59
+ var prevToken = tokens[idx - 1];
60
+ level_itemize++;
61
+ var dataAttr = "";
62
+ var className = "itemize";
63
+ // Attach line-numbering or basic class
64
+ if (options === null || options === void 0 ? void 0 : options.lineNumbering) {
65
+ list_injectLineNumbers(tokens, idx, className);
66
+ }
67
+ else {
68
+ token.attrJoin("class", className);
69
+ }
70
+ // Translate data-padding-inline-start into inline style for top-level lists
71
+ var paddingInlineAttr = token.attrGet("data-padding-inline-start");
72
+ var paddingInlineStyle = paddingInlineAttr
73
+ ? "padding-inline-start: ".concat(paddingInlineAttr, "px; ")
74
+ : "";
75
+ // DOCX-specific: compute custom bullet metadata
76
+ if (options.forDocx) {
77
+ var itemizeLevelTokens = (0, re_level_1.GetItemizeLevelTokens)(token.itemizeLevel);
78
+ if (level_itemize > 0 && itemizeLevelTokens.length >= level_itemize) {
79
+ var itemizeLevelContents = (0, re_level_1.GetItemizeLevel)(token.itemizeLevelContents);
80
+ if (itemizeLevelContents.length >= level_itemize) {
81
+ var levelIndex = level_itemize - 1;
82
+ var markerInfo = isTextMarkerTokens(itemizeLevelTokens[levelIndex], slf, options, env);
83
+ dataAttr += " data-custom-marker-type=\"".concat(markerInfo.markerType, "\"");
84
+ if (markerInfo.markerType === 'text') {
85
+ dataAttr += " data-custom-marker-content=\"".concat(encodeURI(markerInfo.textContent), "\"");
86
+ }
87
+ else {
88
+ dataAttr += " data-custom-marker-content=\"".concat(encodeURI(itemizeLevelContents[levelIndex]), "\"");
89
+ }
90
+ }
91
+ }
92
+ }
93
+ var attrs = slf.renderAttrs(token) + dataAttr;
94
+ var style = level_itemize > 1
95
+ ? 'list-style-type: none'
96
+ : "".concat(paddingInlineStyle, "list-style-type: none");
97
+ var ulOpen = "<ul".concat(attrs, " style=\"").concat(style, "\">");
98
+ if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 'itemize_list_open') {
99
+ return "<li class=\"li_itemize\" data-custom-marker=\"true\" data-marker-empty=\"true\">".concat(ulOpen);
100
+ }
101
+ if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 'enumerate_list_open') {
102
+ return "<li class=\"li_enumerate not_number\" data-custom-marker=\"true\" data-marker-empty=\"true\" style=\"display: block\">".concat(ulOpen);
103
+ }
104
+ return ulOpen;
105
+ };
106
+ exports.render_itemize_list_open = render_itemize_list_open;
107
+ /**
108
+ * Renderer for opening an enumerate list (`enumerate_list_open`).
109
+ *
110
+ * Responsibilities:
111
+ * - Tracks nested enumerate depth via `level_enumerate`.
112
+ * - Resolves the current list-style type (e.g. `decimal`, `lower-alpha`)
113
+ * from `token.enumerateLevel` with a fallback to `"decimal"`.
114
+ * - Adds CSS class `enumerate <style>` (e.g. `enumerate decimal`).
115
+ * - Injects line-numbering attributes when `options.lineNumbering` is enabled.
116
+ * - For DOCX (`options.forDocx`), adds `data-list-style-type="<style>"`.
117
+ * - For top-level lists, respects `data-padding-inline-start` attribute
118
+ * and converts it into inline `padding-inline-start` CSS.
119
+ */
120
+ var render_enumerate_list_open = function (tokens, idx, options, env, slf) {
121
+ var token = tokens[idx];
122
+ // Reset nesting level for top-level enumerate lists
123
+ if (token.level === 0) {
124
+ level_enumerate = 0;
125
+ }
126
+ var prevToken = tokens[idx - 1];
127
+ level_enumerate++;
128
+ var dataAttr = '';
129
+ // Determine current enumerate style (e.g. decimal, lower-alpha, ...)
130
+ var enumerateLevels = (0, re_level_1.GetEnumerateLevel)(token.enumerateLevel);
131
+ var currentStyle = enumerateLevels.length >= level_enumerate
132
+ ? enumerateLevels[level_enumerate - 1]
133
+ : "decimal";
134
+ var className = "enumerate ".concat(currentStyle);
135
+ // Line numbering or basic class
136
+ if (options === null || options === void 0 ? void 0 : options.lineNumbering) {
137
+ list_injectLineNumbers(tokens, idx, className);
138
+ }
139
+ else {
140
+ token.attrJoin("class", className);
141
+ }
142
+ // Map data-padding-inline-start → inline CSS for top-level lists
143
+ var paddingInlineAttr = token.attrGet("data-padding-inline-start");
144
+ var paddingInlineStyle = paddingInlineAttr
145
+ ? "padding-inline-start: ".concat(paddingInlineAttr, "px; ")
146
+ : "";
147
+ // DOCX: pass style type to consumer
148
+ if (options.forDocx) {
149
+ dataAttr = " data-list-style-type=\"".concat(currentStyle, "\"");
150
+ }
151
+ var attrs = slf.renderAttrs(token) + dataAttr;
152
+ var style = level_enumerate > 1
153
+ ? "list-style-type: ".concat(currentStyle)
154
+ : "".concat(paddingInlineStyle, "list-style-type: ").concat(currentStyle);
155
+ var olOpen = "<ol".concat(attrs, " style=\"").concat(style, "\">");
156
+ if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 'itemize_list_open') {
157
+ return "<li class=\"li_itemize\" data-custom-marker=\"true\" data-marker-empty=\"true\">".concat(olOpen);
158
+ }
159
+ if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 'enumerate_list_open') {
160
+ return "<li class=\"li_enumerate not_number\" data-custom-marker=\"true\" data-marker-empty=\"true\" style=\"display: block\">".concat(olOpen);
161
+ }
162
+ return olOpen;
163
+ };
164
+ exports.render_enumerate_list_open = render_enumerate_list_open;
165
+ var generateHtmlForMarkerTokens = function (markerTokens, slf, options, env) {
166
+ var htmlMarker = '';
167
+ var markerType = 'text';
168
+ var textContent = '';
169
+ if (markerTokens.length === 1 && consts_1.mathTokenTypes.includes(markerTokens[0].type)) {
170
+ markerType = 'math';
171
+ if (markerTokens[0].mathEquation) {
172
+ try {
173
+ var svg = '';
174
+ var svgStart = markerTokens[0].mathEquation.indexOf('<svg');
175
+ var svgEnd = markerTokens[0].mathEquation.indexOf('</mjx-container>');
176
+ svg = svgStart >= 0 && svgEnd > 0 ? markerTokens[0].mathEquation.slice(svgStart, svgEnd) : '';
177
+ var resSvg = (0, convert_scv_to_base64_1.default)(svg);
178
+ htmlMarker += resSvg;
179
+ }
180
+ catch (e) {
181
+ htmlMarker += markerTokens[0].mathEquation;
182
+ }
183
+ }
184
+ else {
185
+ htmlMarker += slf.renderInline([markerTokens[0]], options, env);
186
+ }
187
+ return {
188
+ htmlMarker: htmlMarker,
189
+ markerType: markerType,
190
+ textContent: ''
191
+ };
192
+ }
193
+ for (var j = 0; j < markerTokens.length; j++) {
194
+ if (markerTokens[j].type !== 'text') {
195
+ markerType = 'multi';
196
+ }
197
+ if (markerTokens[j].mathEquation) {
198
+ try {
199
+ var svg = '';
200
+ var svgStart = markerTokens[j].mathEquation.indexOf('<svg');
201
+ var svgEnd = markerTokens[j].mathEquation.indexOf('</mjx-container>');
202
+ svg = svgStart >= 0 && svgEnd > 0 ? markerTokens[j].mathEquation.slice(svgStart, svgEnd) : '';
203
+ var resSvg = (0, convert_scv_to_base64_1.default)(svg);
204
+ htmlMarker += resSvg;
205
+ }
206
+ catch (e) {
207
+ htmlMarker += markerTokens[j].mathEquation;
208
+ }
209
+ continue;
210
+ }
211
+ var renderdToken = slf.renderInline([markerTokens[j]], options, env);
212
+ if (markerType === 'text') {
213
+ textContent += renderdToken;
214
+ }
215
+ else {
216
+ textContent = '';
217
+ }
218
+ htmlMarker += renderdToken;
219
+ }
220
+ return {
221
+ htmlMarker: htmlMarker,
222
+ markerType: markerType,
223
+ textContent: textContent
224
+ };
225
+ };
226
+ var isTextMarkerTokens = function (markerTokens, slf, options, env) {
227
+ var markerType = 'text';
228
+ if (markerTokens.length === 1 && consts_1.mathTokenTypes.includes(markerTokens[0].type)) {
229
+ markerType = 'math';
230
+ return {
231
+ markerType: markerType,
232
+ textContent: ''
233
+ };
234
+ }
235
+ var textContent = '';
236
+ for (var j = 0; j < markerTokens.length; j++) {
237
+ if (markerTokens[j].type !== 'text') {
238
+ markerType = 'multi';
239
+ break;
240
+ }
241
+ textContent += slf.renderInline([markerTokens[j]], options, env);
242
+ }
243
+ return {
244
+ markerType: markerType,
245
+ textContent: textContent
246
+ };
247
+ };
248
+ /**
249
+ * Builds HTML for a custom \item[...] marker and reports whether the marker is empty.
250
+ * "Empty" means: marker is present but contains only whitespace / no visible content.
251
+ */
252
+ var generateHtmlForCustomMarker = function (token, options, slf, env) {
253
+ var _a, _b, _c, _d, _e;
254
+ var rawMarker = token.marker;
255
+ var markerTokens = (_a = token.markerTokens) !== null && _a !== void 0 ? _a : [];
256
+ // Marker is considered "present" only if \item[...] was used.
257
+ var markerProvided = Object.prototype.hasOwnProperty.call(token, "marker");
258
+ // Fast path: if we have raw marker string, use it to detect empty marker reliably.
259
+ var hasNonEmptyMarker = markerProvided
260
+ ? Boolean(rawMarker && rawMarker.trim().length > 0)
261
+ : false;
262
+ if (!markerProvided) {
263
+ return { htmlMarker: "", markerType: "text", textContent: "", isMarkerEmpty: false };
264
+ }
265
+ if (options.forDocx) {
266
+ var data = generateHtmlForMarkerTokens(markerTokens, slf, options, env);
267
+ // Fallback empty check: if raw marker is missing, use extracted textContent
268
+ var isEmpty = rawMarker != null
269
+ ? rawMarker.trim().length === 0
270
+ : ((_b = data.textContent) !== null && _b !== void 0 ? _b : "").trim().length === 0;
271
+ return {
272
+ htmlMarker: (_c = data.htmlMarker) !== null && _c !== void 0 ? _c : "",
273
+ markerType: (_d = data.markerType) !== null && _d !== void 0 ? _d : "text",
274
+ textContent: (_e = data.textContent) !== null && _e !== void 0 ? _e : "",
275
+ isMarkerEmpty: isEmpty,
276
+ };
277
+ }
278
+ // Non-DOCX path: render inline marker tokens if marker is non-empty.
279
+ var htmlMarker = hasNonEmptyMarker
280
+ ? slf.renderInline(markerTokens, options, env)
281
+ : "";
282
+ return {
283
+ htmlMarker: htmlMarker,
284
+ markerType: "text",
285
+ textContent: "",
286
+ isMarkerEmpty: !hasNonEmptyMarker,
287
+ };
288
+ };
289
+ /**
290
+ * Builds HTML marker information for list items that define a custom marker.
291
+ *
292
+ * Extracts the rendered marker (HTML) and assembles the corresponding
293
+ * `data-*` attributes used for HTML and DOCX export.
294
+ */
295
+ var buildCustomMarkerInfo = function (token, options, slf, env) {
296
+ var dataAttrs = ['data-custom-marker="true"'];
297
+ var data = generateHtmlForCustomMarker(token, options, slf, env);
298
+ if (data === null || data === void 0 ? void 0 : data.isMarkerEmpty) {
299
+ dataAttrs.push('data-marker-empty="true"');
300
+ }
301
+ var htmlMarker = data.htmlMarker;
302
+ if (options.forDocx) {
303
+ dataAttrs.push("data-custom-marker-type=\"".concat(data.markerType, "\""));
304
+ var content = data.markerType === 'text'
305
+ ? data.textContent
306
+ : token.marker;
307
+ dataAttrs.push("data-custom-marker-content=\"".concat(encodeURI(content), "\""));
308
+ }
309
+ var dataAttr = dataAttrs.length ? ' ' + dataAttrs.join(' ') : '';
310
+ return { htmlMarker: htmlMarker, dataAttr: dataAttr };
311
+ };
312
+ /**
313
+ * Builds marker information for LaTeX-style itemize list items.
314
+ *
315
+ * If the token defines a custom marker, delegates to `buildCustomMarkerInfo`.
316
+ * Otherwise, derives the marker from the itemize level tokens and, when
317
+ * exporting to DOCX, attaches appropriate `data-*` attributes (including
318
+ * math markers and their raw LaTeX content).
319
+ */
320
+ var buildItemizeMarkerInfo = function (token, options, env, slf, level_itemize) {
321
+ var itemizeLevelTokens = (0, re_level_1.GetItemizeLevelTokens)(token.itemizeLevel);
322
+ var dataAttr = '';
323
+ var htmlMarker = '.';
324
+ if (token.hasOwnProperty('marker') && token.markerTokens) {
325
+ return buildCustomMarkerInfo(token, options, slf, env);
326
+ }
327
+ if (level_itemize > 0 && itemizeLevelTokens.length >= level_itemize) {
328
+ if (options.forDocx) {
329
+ var data = generateHtmlForMarkerTokens(itemizeLevelTokens[level_itemize - 1], slf, options, env);
330
+ htmlMarker = data.htmlMarker;
331
+ if (data.markerType === 'math') {
332
+ var itemizeLevel = (0, re_level_1.GetItemizeLevel)(token.itemizeLevelContents);
333
+ if (itemizeLevel.length >= level_itemize) {
334
+ dataAttr += " data-custom-marker-content=\"".concat(encodeURI(itemizeLevel[level_itemize - 1]), "\"");
335
+ }
336
+ dataAttr += ' data-custom-marker="true"';
337
+ dataAttr += " data-custom-marker-type=\"".concat(data.markerType, "\"");
338
+ }
339
+ }
340
+ else {
341
+ htmlMarker = slf.renderInline(itemizeLevelTokens[level_itemize - 1], options, env);
342
+ }
343
+ }
344
+ return { htmlMarker: htmlMarker, dataAttr: dataAttr };
345
+ };
346
+ /**
347
+ * Core renderer for LaTeX list items (both `enumerate` and `itemize`).
348
+ *
349
+ * Responsibilities:
350
+ * - Decide whether the current <li> belongs to LaTeX list context
351
+ * (`parentType` is "itemize" or "enumerate") or is just a plain HTML list.
352
+ * - Build the correct <li> markup for:
353
+ * - numbered lists (`enumerate`) with optional custom markers;
354
+ * - bulleted lists (`itemize`) with level-dependent markers;
355
+ * - Inject line-numbering classes when `options.lineNumbering` is enabled;
356
+ * - Add a leading non-breaking space for PPTX when the item begins
357
+ * with a math-only inline token;
358
+ * - Support two modes:
359
+ * - "open" — return only the opening part (no content, no closing </li>);
360
+ * - "full" — return opening tag, `content`, and closing </li>.
361
+ */
362
+ var renderLatexListItemCore = function (tokens, index, options, env, slf, sContent, mode) {
363
+ var _a, _b;
364
+ var token = tokens[index];
365
+ var isOpen = mode === "open";
366
+ var content = sContent !== null && sContent !== void 0 ? sContent : "";
367
+ // Helper: should we insert an extra &nbsp; at the start for PPTX/math-only items?
368
+ var needsPptxLeadingSpace = function () {
369
+ var _a;
370
+ if (!(options === null || options === void 0 ? void 0 : options.forPptx))
371
+ return false;
372
+ var next = tokens[index + 1];
373
+ if ((next === null || next === void 0 ? void 0 : next.type) !== "inline" || !((_a = next.children) === null || _a === void 0 ? void 0 : _a.length))
374
+ return false;
375
+ var firstChild = next.children[0];
376
+ return ["equation_math", "equation_math_not_number", "display_math"].includes(firstChild.type);
377
+ };
378
+ // Not in LaTeX list context at all → render a normal <li>
379
+ if (token.parentType !== "itemize" && token.parentType !== "enumerate") {
380
+ return isOpen ? "<li>" : "<li>".concat(content, "</li>");
381
+ }
382
+ var isEnumerate = token.parentType === "enumerate";
383
+ var dataAttr = "";
384
+ var htmlMarker = "";
385
+ // ENUMERATE
386
+ if (isEnumerate) {
387
+ var hasCustomMarker = token.hasOwnProperty('marker') && token.markerTokens;
388
+ // Case 1: custom marker (e.g. \item[foo])
389
+ if (hasCustomMarker) {
390
+ var className_1 = 'li_enumerate not_number';
391
+ if (options === null || options === void 0 ? void 0 : options.lineNumbering) {
392
+ // line numbers
393
+ list_injectLineNumbers(tokens, index, className_1);
394
+ }
395
+ else {
396
+ tokens[index].attrJoin("class", className_1);
397
+ }
398
+ var markerInfo = buildCustomMarkerInfo(token, options, slf, env);
399
+ dataAttr += markerInfo.dataAttr;
400
+ htmlMarker = markerInfo.htmlMarker;
401
+ var prefix_1 = "<li".concat(slf.renderAttrs(token)).concat(dataAttr, " style=\"display: block\">") +
402
+ "<span class=\"li_level\"".concat(dataAttr, ">").concat(htmlMarker, "</span>");
403
+ if (isOpen) {
404
+ return prefix_1;
405
+ }
406
+ return "".concat(prefix_1).concat(sContent, "</li>");
407
+ }
408
+ // Case 2: regular numbered enumerate element
409
+ var className_2 = ((_a = token.meta) === null || _a === void 0 ? void 0 : _a.isBlock)
410
+ ? 'li_enumerate block'
411
+ : 'li_enumerate';
412
+ if (options === null || options === void 0 ? void 0 : options.lineNumbering) {
413
+ list_injectLineNumbers(tokens, index, className_2);
414
+ }
415
+ else {
416
+ tokens[index].attrJoin("class", className_2);
417
+ }
418
+ var prefix_2 = "<li".concat(slf.renderAttrs(token), ">");
419
+ if (isOpen) {
420
+ if (needsPptxLeadingSpace()) {
421
+ return prefix_2 + "<span>&nbsp;</span>";
422
+ }
423
+ return prefix_2;
424
+ }
425
+ return "".concat(prefix_2).concat(sContent, "</li>");
426
+ }
427
+ // ITEMIZE
428
+ var itemizeInfo = buildItemizeMarkerInfo(token, options, env, slf, level_itemize);
429
+ htmlMarker = itemizeInfo.htmlMarker;
430
+ dataAttr += itemizeInfo.dataAttr || "";
431
+ var className = ((_b = token.meta) === null || _b === void 0 ? void 0 : _b.isBlock)
432
+ ? 'li_itemize block'
433
+ : 'li_itemize';
434
+ if (options === null || options === void 0 ? void 0 : options.lineNumbering) {
435
+ list_injectLineNumbers(tokens, index, className);
436
+ }
437
+ else {
438
+ tokens[index].attrJoin("class", className);
439
+ }
440
+ var prefix = "<li".concat(slf.renderAttrs(token)).concat(dataAttr, ">") +
441
+ "<span class=\"li_level\"".concat(dataAttr, ">").concat(htmlMarker, "</span>");
442
+ if (isOpen) {
443
+ if (needsPptxLeadingSpace()) {
444
+ return prefix + "<span>&nbsp;</span>";
445
+ }
446
+ return prefix;
447
+ }
448
+ return "".concat(prefix).concat(sContent, "</li>");
449
+ };
450
+ /**
451
+ * Renders the content of a LaTeX list item (`latex_list_item_open`).
452
+ *
453
+ * Responsibilities:
454
+ * - Renders child tokens (including nested inline/tabular content).
455
+ * - Marks math fragments with `data-math-in-text` when needed.
456
+ * - Applies highlight wrappers when `token.highlights` is present.
457
+ * - Adds a dummy `&nbsp;` for empty list items (to keep bullet visible).
458
+ * - Delegates final <li> markup to `renderLatexListItemCore`
459
+ * for plain / nested list cases.
460
+ */
461
+ var render_item_inline = function (tokens, idx, options, env, slf) {
462
+ var _a, _b, _c;
463
+ var token = tokens[idx];
464
+ var renderedContent = '';
465
+ var children = (_a = token.children) !== null && _a !== void 0 ? _a : null;
466
+ if (children && children.length > 0) {
467
+ var content = "";
468
+ for (var i = 0; i < children.length; i++) {
469
+ var childToken = children[i];
470
+ if (((_b = childToken === null || childToken === void 0 ? void 0 : childToken.children) === null || _b === void 0 ? void 0 : _b.length) > 0) {
471
+ // Nested inline content or special inline structures
472
+ if (childToken.type === "tabular_inline") {
473
+ content = (0, render_tabular_1.renderTabularInline)(token.children, childToken, options, env, slf);
474
+ }
475
+ else {
476
+ content = slf.renderInline(childToken.children, options, env);
477
+ }
478
+ }
479
+ else {
480
+ if ((0, utils_1.isMathInText)(token.children, i, options)) {
481
+ childToken.attrSet('data-math-in-text', "true");
482
+ }
483
+ content = slf.renderInline([childToken], options, env);
484
+ // For PPTX we prepend a non-breaking space before math-only first item
485
+ if ((options === null || options === void 0 ? void 0 : options.forPptx)
486
+ && i === 0
487
+ && ['equation_math', 'equation_math_not_number', 'display_math'].includes(childToken.type)) {
488
+ content = '<span>&nbsp</span>' + content;
489
+ }
490
+ }
491
+ renderedContent += content;
492
+ }
493
+ }
494
+ // Apply highlighting if requested
495
+ if (((_c = token.highlights) === null || _c === void 0 ? void 0 : _c.length) && (0, common_1.needToHighlightAll)(token)) {
496
+ renderedContent = (0, common_1.highlightText)(token, renderedContent);
497
+ }
498
+ // If this <li> is not inside LaTeX itemize/enumerate → render simple <li>
499
+ if (token.parentType !== "itemize" && token.parentType !== "enumerate") {
500
+ return "<li>".concat(renderedContent, "</li>");
501
+ }
502
+ // Keep bullet visible for empty list items
503
+ if (!renderedContent) {
504
+ renderedContent = '&nbsp';
505
+ }
506
+ var nextToken = tokens[idx + 1];
507
+ if ((nextToken === null || nextToken === void 0 ? void 0 : nextToken.type) === 'itemize_list_open') {
508
+ return renderLatexListItemCore(tokens, idx, options, env, slf, renderedContent, 'open');
509
+ }
510
+ return renderLatexListItemCore(tokens, idx, options, env, slf, renderedContent, 'full');
511
+ };
512
+ exports.render_item_inline = render_item_inline;
513
+ var render_latex_list_item_open = function (tokens, idx, options, env, slf) {
514
+ if (options === void 0) { options = {}; }
515
+ if (env === void 0) { env = {}; }
516
+ return renderLatexListItemCore(tokens, idx, options, env, slf, null, 'open');
517
+ };
518
+ exports.render_latex_list_item_open = render_latex_list_item_open;
519
+ var render_latex_list_item_close = function () {
520
+ return "</li>";
521
+ };
522
+ exports.render_latex_list_item_close = render_latex_list_item_close;
523
+ /**
524
+ * Renderer for closing an itemize list (`itemize_list_close`).
525
+ *
526
+ * Decreases nested itemize depth and, when another `itemize_list_close`
527
+ * follows immediately and we are still in nested context, outputs
528
+ * `</ul></li>` to close both the nested list and its `<li>`.
529
+ */
530
+ var render_itemize_list_close = function (tokens, idx, options, env, slf) {
531
+ if (options === void 0) { options = {}; }
532
+ if (env === void 0) { env = {}; }
533
+ level_itemize--;
534
+ var nextToken = tokens[idx + 1];
535
+ if ((level_itemize > 0 || level_enumerate > 0)
536
+ && (nextToken === null || nextToken === void 0 ? void 0 : nextToken.type)
537
+ && ["enumerate_list_close", "itemize_list_close"].includes(nextToken.type)) {
538
+ return "</ul></li>";
539
+ }
540
+ return "</ul>";
541
+ };
542
+ exports.render_itemize_list_close = render_itemize_list_close;
543
+ var render_enumerate_list_close = function (tokens, idx, options, env, slf) {
544
+ if (options === void 0) { options = {}; }
545
+ if (env === void 0) { env = {}; }
546
+ level_enumerate--;
547
+ var nextToken = tokens[idx + 1];
548
+ if ((level_itemize > 0 || level_enumerate > 0)
549
+ && (nextToken === null || nextToken === void 0 ? void 0 : nextToken.type)
550
+ && ["enumerate_list_close", "itemize_list_close"].includes(nextToken.type)) {
551
+ return "</ol></li>";
552
+ }
553
+ return "</ol>";
554
+ };
555
+ exports.render_enumerate_list_close = render_enumerate_list_close;
556
+ //# sourceMappingURL=render-latex-list-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-latex-list-env.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/render-latex-list-env.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,10 @@ var newTheoremBlock = function (state, startLine, endLine, silent) {
52
52
  && !consts_1.reSetCounterG.test(content)) {
53
53
  return false;
54
54
  }
55
+ var match = content.match(consts_1.reSetCounterG);
56
+ if (match && match[1] && ['enumi', 'enumii', 'enumiii', 'enumiv'].includes(match[1])) {
57
+ return false;
58
+ }
55
59
  /** For validation mode we can terminate immediately */
56
60
  if (silent) {
57
61
  return true;
@@ -333,7 +337,13 @@ var BeginTheorem = function (state, startLine, endLine, silent) {
333
337
  }
334
338
  }
335
339
  }
336
- (0, helper_1.SetTokensBlockParse)(state, resText, 0, 0, true, contentPositions, (_c = state.md.options) === null || _c === void 0 ? void 0 : _c.forPptx);
340
+ (0, helper_1.SetTokensBlockParse)(state, resText, {
341
+ startLine: 0,
342
+ endLine: 0,
343
+ isInline: true,
344
+ contentPositions: contentPositions,
345
+ forPptx: (_c = state.md.options) === null || _c === void 0 ? void 0 : _c.forPptx
346
+ });
337
347
  token = state.push('theorem_close', 'div', -1);
338
348
  token.envStyle = envItem.style;
339
349
  if (state.md.options.forLatex) {