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
@@ -1,637 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Lists = exports.ReRenderListsItem = exports.reNumber = exports.bItemTag = exports.TBegin = void 0;
4
- var re_level_1 = require("./re-level");
5
- var helper_1 = require("../helper");
6
- var consts_1 = require("../../common/consts");
7
- var TBegin;
8
- (function (TBegin) {
9
- TBegin["itemize"] = "itemize";
10
- TBegin["enumerate"] = "enumerate";
11
- })(TBegin = exports.TBegin || (exports.TBegin = {}));
12
- ;
13
- var openTag = /\\begin\s{0,}\{(itemize|enumerate)\}/;
14
- exports.bItemTag = /^(?:item\s{0,}\[([^\]]*)\]|item)/;
15
- var closeTag = /\\end\s{0,}\{(itemize|enumerate)\}/;
16
- exports.reNumber = /^-?\d+$/;
17
- var setTokenListItemOpenBlock = function (state, startLine, endLine, marker, li, iLevel, eLevel, iLevelC) {
18
- var token;
19
- token = state.push('latex_list_item_open', 'li', 1);
20
- token.parentType = state.types && state.types.length > 0 ? state.types[state.types.length - 1] : '';
21
- if (marker) {
22
- token.marker = marker;
23
- var chMarker = [];
24
- state.md.inline.parse(marker, state.md, state.env, chMarker);
25
- token.markerTokens = chMarker;
26
- }
27
- if (li && li.hasOwnProperty('value')) {
28
- token.startValue = li.value;
29
- token.attrSet('value', li.value.toString());
30
- li = null;
31
- }
32
- token.parentType = state.types && state.types.length > 0 ? state.types[state.types.length - 1] : '';
33
- token.parentStart = state.startLine;
34
- token.map = [startLine, endLine];
35
- token.prentLevel = state.prentLevel;
36
- token.itemizeLevel = iLevel;
37
- token.itemizeLevelContents = iLevelC;
38
- token.enumerateLevel = eLevel;
39
- };
40
- var ListItemsBlock = function (state, items) {
41
- if (items && items.length > 0) {
42
- if (items && items.length > 0) {
43
- items.forEach(function (item) {
44
- (0, helper_1.SetTokensBlockParse)(state, item.content.trim(), item.startLine, item.endLine + 1);
45
- });
46
- }
47
- }
48
- };
49
- var ListItems = function (state, items, iLevel, eLevel, li, iOpen, iLevelC) {
50
- var token;
51
- var blockStartTag = /\\begin{(center|left|right|table|figure|tabular|lstlisting)}/;
52
- var padding = 0;
53
- if (items && items.length > 0) {
54
- if (items && items.length > 0) {
55
- items.forEach(function (item) {
56
- var _a;
57
- var children = [];
58
- state.env.parentType = state.parentType;
59
- state.env.isBlock = true;
60
- item.content = item.content.trim();
61
- if (blockStartTag.test(item.content) || (item.content.indexOf('`') > -1) //&& item.content.charCodeAt(0) === 0x5c /* \ */
62
- ) {
63
- var match = item.content.slice(1).match(exports.bItemTag);
64
- if (match) {
65
- setTokenListItemOpenBlock(state, item.startLine, item.endLine + 1, match[1], li, iLevel, eLevel, iLevelC);
66
- if (li && li.hasOwnProperty('value')) {
67
- li = null;
68
- }
69
- (0, helper_1.SetTokensBlockParse)(state, item.content.slice(match.index + match[0].length + 1).trim());
70
- token = state.push('latex_list_item_close', 'li', -1);
71
- return;
72
- }
73
- }
74
- state.md.inline.parse(item.content.trim(), state.md, state.env, children);
75
- for (var j = 0; j < children.length; j++) {
76
- var child = children[j];
77
- if (child.type === "setcounter") {
78
- li = { value: child.content };
79
- continue;
80
- }
81
- token = state.push(child.type, child.tag, 1);
82
- token.attrs = child.attrs;
83
- if (child.type === "item_inline"
84
- && li && li.hasOwnProperty('value')) {
85
- token.startValue = li.value;
86
- token.attrSet('value', li.value.toString());
87
- li = null;
88
- }
89
- if (child.hasOwnProperty('marker')) {
90
- token.marker = child.marker;
91
- token.markerTokens = child.markerTokens;
92
- var paddingChild = 0;
93
- for (var i = 0; i < ((_a = child.markerTokens) === null || _a === void 0 ? void 0 : _a.length); i++) {
94
- if (child.markerTokens[i].type === 'text') {
95
- paddingChild += child.markerTokens[i].content.length;
96
- }
97
- }
98
- if (paddingChild > padding) {
99
- padding = paddingChild;
100
- }
101
- }
102
- token.parentType = state.types && state.types.length > 0 ? state.types[state.types.length - 1] : '';
103
- token.parentStart = state.startLine;
104
- token.map = [item.startLine, item.endLine + 1];
105
- if (child.hasOwnProperty('inlinePos')) {
106
- token.bMarks = child.inlinePos.start_content;
107
- }
108
- token.content = child.content;
109
- token.children = child.children;
110
- token.prentLevel = state.prentLevel;
111
- if (child.type === "item_inline") {
112
- token.prentLevel = state.prentLevel + 1;
113
- }
114
- if (child.type === "enumerate_list_open" || child.type === "itemize_list_open") {
115
- state.prentLevel++;
116
- if (child.type === "itemize_list_open") {
117
- state.types.push('itemize');
118
- }
119
- else {
120
- state.types.push('enumerate');
121
- }
122
- iOpen++;
123
- }
124
- if (child.type === "enumerate_list_close" || child.type === "itemize_list_close") {
125
- state.prentLevel--;
126
- if (state.types && state.types.length > 0) {
127
- state.types.pop();
128
- }
129
- iOpen--;
130
- }
131
- token.itemizeLevel = iLevel;
132
- token.itemizeLevelContents = iLevelC;
133
- // token.itemizeLevelTokens = iLevelTokens;
134
- token.enumerateLevel = eLevel;
135
- }
136
- state.env.isBlock = false;
137
- });
138
- }
139
- }
140
- return {
141
- iOpen: iOpen,
142
- padding: padding
143
- };
144
- };
145
- var setTokenOpenList = function (state, startLine, endLine, type, iLevel, eLevel, iLevelC) {
146
- var token;
147
- if (type === TBegin.itemize) {
148
- token = state.push('itemize_list_open', 'ul', 1);
149
- state.prentLevel = (state.parentType !== 'itemize' && state.parentType !== 'enumerate') ? 0 : state.prentLevel + 1;
150
- state.parentType = 'itemize';
151
- if (state.types && state.types.length > 0) {
152
- state.types.push('itemize');
153
- }
154
- else {
155
- state.types = ['itemize'];
156
- }
157
- }
158
- else {
159
- token = state.push('enumerate_list_open', 'ol', 1);
160
- state.prentLevel = (state.parentType !== 'itemize' && state.parentType !== 'enumerate') ? 0 : state.prentLevel + 1;
161
- state.parentType = 'enumerate';
162
- if (state.types && state.types.length > 0) {
163
- state.types.push('enumerate');
164
- }
165
- else {
166
- state.types = ['enumerate'];
167
- }
168
- }
169
- token.itemizeLevel = iLevel;
170
- token.itemizeLevelContents = iLevelC;
171
- token.enumerateLevel = eLevel;
172
- token.prentLevel = state.prentLevel;
173
- if (startLine > -1 && endLine > -1) {
174
- state.startLine = startLine;
175
- token.map = [startLine, endLine];
176
- }
177
- return token;
178
- };
179
- var setTokenCloseList = function (state, startLine, endLine) {
180
- var token;
181
- if (state.types && state.types.length > 0 && state.types[state.types.length - 1] === TBegin.itemize) {
182
- token = state.push('itemize_list_close', 'ul', -1);
183
- token.map = [startLine, endLine];
184
- }
185
- else {
186
- token = state.push('enumerate_list_close', 'ol', -1);
187
- token.map = [startLine, endLine];
188
- }
189
- token.level -= 1;
190
- state.level -= 1;
191
- state.prentLevel = state.prentLevel > 0 ? state.prentLevel - 1 : 0;
192
- token.prentLevel = state.prentLevel;
193
- state.types.pop();
194
- };
195
- var ListOpen = function (state, startLine, lineText, iLevel, eLevel, iLevelC) {
196
- var token, tokenStart = null;
197
- var iOpen = 0;
198
- var li = null;
199
- if (lineText.charCodeAt(0) !== 0x5c /* \ */) {
200
- return { iOpen: iOpen, tokenStart: tokenStart };
201
- }
202
- var match = lineText.match(openTag);
203
- if (!match && (state.parentType !== 'itemize' && state.parentType !== 'enumerate')) {
204
- return { iOpen: iOpen, tokenStart: tokenStart };
205
- }
206
- (0, re_level_1.SetItemizeLevelTokens)(state);
207
- if (match) {
208
- var strAfter = lineText.slice(match.index + match[0].length);
209
- var type = match[1].trim() in TBegin ? match[1].trim() : null;
210
- if (!type) {
211
- return { iOpen: iOpen, tokenStart: tokenStart };
212
- }
213
- tokenStart = setTokenOpenList(state, startLine, startLine + 1, type, iLevel, eLevel, iLevelC);
214
- iOpen++;
215
- if (strAfter && strAfter.trim().length > 0) {
216
- var children = [];
217
- state.env.parentType = state.parentType;
218
- state.env.isBlock = true;
219
- state.md.inline.parse(strAfter, state.md, state.env, children);
220
- for (var j = 0; j < children.length; j++) {
221
- var child = children[j];
222
- if (child.type === "setcounter") {
223
- li = { value: child.content };
224
- continue;
225
- }
226
- token = state.push(child.type, child.tag, 1);
227
- token.parentType = state.types && state.types.length > 0 ? state.types[state.types.length - 1] : '';
228
- token.parentStart = state.startLine;
229
- token.map = [startLine, startLine];
230
- token.content = child.content;
231
- token.children = child.children;
232
- token.itemizeLevel = iLevel;
233
- token.itemizeLevelContents = iLevelC;
234
- token.enumerateLevel = eLevel;
235
- if (child.type === "enumerate_list_open" || child.type === "itemize_list_open") {
236
- state.prentLevel++;
237
- if (child.type === "itemize_list_open") {
238
- state.types.push('itemize');
239
- }
240
- else {
241
- state.types.push('enumerate');
242
- }
243
- iOpen++;
244
- }
245
- if (child.type === "enumerate_list_close" || child.type === "itemize_list_close") {
246
- state.prentLevel--;
247
- if (state.types && state.types.length > 0) {
248
- state.types.pop();
249
- }
250
- iOpen--;
251
- }
252
- if (child.type === "item_inline") {
253
- if (li && li.value) {
254
- token.startValue = li.value;
255
- token.attrSet('value', li.value.toString());
256
- li = null;
257
- }
258
- token.prentLevel = state.prentLevel + 1;
259
- }
260
- else {
261
- token.prentLevel = state.prentLevel;
262
- }
263
- }
264
- state.env.isBlock = false;
265
- }
266
- }
267
- return { iOpen: iOpen, tokenStart: tokenStart, li: li };
268
- };
269
- var ItemsListPush = function (items, content, startLine, endLine) {
270
- //const itemTag: RegExp = /\\item/;
271
- var index = content.indexOf('\\item');
272
- if (index > 0) {
273
- if (content.slice(0, index).indexOf('`') > -1 && content.slice(index).indexOf('`') > -1) {
274
- if (items.length > 0) {
275
- var last = items.length - 1;
276
- items[last].content += '\n' + content;
277
- items[last].endLine += 1;
278
- }
279
- else {
280
- items.push({ content: content, startLine: startLine, endLine: endLine });
281
- }
282
- return items;
283
- }
284
- if (items.length > 0) {
285
- var last = items.length - 1;
286
- items[last].content += '\n' + content.slice(0, index);
287
- items[last].endLine += 1;
288
- }
289
- else {
290
- items = ItemsListPush(items, content.slice(0, index), startLine, endLine);
291
- }
292
- items = ItemsListPush(items, content.slice(index), startLine, endLine);
293
- }
294
- else {
295
- items.push({ content: content, startLine: startLine, endLine: endLine });
296
- }
297
- return items;
298
- };
299
- var ItemsAddToPrev = function (items, lineText, nextLine) {
300
- if (items && items.length > 0) {
301
- items[items.length - 1].content += '\n' + lineText;
302
- items[items.length - 1].endLine = nextLine;
303
- }
304
- else {
305
- if (!closeTag.test(lineText)) {
306
- items = ItemsListPush(items, lineText, nextLine, nextLine);
307
- // break
308
- }
309
- }
310
- return items;
311
- };
312
- var ReRenderListsItem = function (state, startLine, endLine, silent) {
313
- var pos = state.bMarks[startLine] + state.tShift[startLine];
314
- var max = state.eMarks[startLine];
315
- var nextLine = startLine + 1;
316
- var lineText = state.src.slice(pos, max);
317
- var content = lineText;
318
- if (lineText.charCodeAt(0) !== 0x5c /* \ */) {
319
- return false;
320
- }
321
- var match = lineText.slice(1).match(exports.bItemTag);
322
- if (!match) {
323
- return false;
324
- }
325
- var eLevel = (0, re_level_1.GetEnumerateLevel)();
326
- var dataMarkers = (0, re_level_1.GetItemizeLevelTokensByState)(state);
327
- var iLevelT = dataMarkers.tokens;
328
- var iLevelC = dataMarkers.contents;
329
- for (; nextLine < endLine; nextLine++) {
330
- pos = state.bMarks[nextLine] + state.tShift[nextLine];
331
- max = state.eMarks[nextLine];
332
- lineText = state.src.slice(pos, max);
333
- content += '\n' + lineText;
334
- }
335
- match = content.slice(1).match(exports.bItemTag);
336
- if (match) {
337
- setTokenListItemOpenBlock(state, startLine, nextLine + 1, match[1], null, iLevelT, eLevel, iLevelC);
338
- (0, helper_1.SetTokensBlockParse)(state, content.slice(match.index + match[0].length + 1).trim());
339
- state.push('latex_list_item_close', 'li', -1);
340
- }
341
- state.line = nextLine;
342
- return true;
343
- };
344
- exports.ReRenderListsItem = ReRenderListsItem;
345
- /**
346
- * Try to handle an inline `\begin{lstlisting}` on the given line.
347
- *
348
- * Behavior:
349
- * - If already inside a lstlisting environment (`envDepth > 0`), does nothing.
350
- * - If a `\begin{lstlisting}` is found:
351
- * - Text before the begin is appended either as a new list item (when it matches `itemTag`)
352
- * or concatenated to the previous item.
353
- * - Sets `envDepth` to 1 (entered lstlisting).
354
- * - Appends the substring starting at `\begin{lstlisting}` to the end of the line
355
- * as code content in the current item.
356
- *
357
- * The function does not mutate inputs; it returns the updated state.
358
- *
359
- * @param lineText The full text of the current line.
360
- * @param envDepth Current lstlisting nesting depth.
361
- * @param items Collected items so far (list builder state).
362
- * @param nextLine The current (next) line index used for item position metadata.
363
- * @param dStart Document start line offset to compute absolute positions.
364
- * @param itemTag RegExp to detect list item prefixes (e.g., `^\s*\\item`).
365
- * @returns Updated handling result with flags, depth, items, and original line text.
366
- */
367
- var handleLstBeginInline = function (lineText, envDepth, items, nextLine, dStart, itemTag) {
368
- // If already inside lstlisting, do nothing.
369
- if (envDepth > 0) {
370
- return { handled: false, envDepth: envDepth, items: items, lineText: lineText };
371
- }
372
- var mb = consts_1.BEGIN_LST_INLINE_RE.exec(lineText);
373
- if (!mb) {
374
- return { handled: false, envDepth: envDepth, items: items, lineText: lineText };
375
- }
376
- var beginIndex = mb.index;
377
- // Is there text BEFORE \begin{lstlisting} ?
378
- var before = lineText.slice(0, beginIndex).trimEnd();
379
- var afterBegin = lineText.slice(beginIndex); // start from \begin...
380
- // If there was something before begin, it was regular text/part of \item:
381
- if (before.length > 0) {
382
- if (itemTag.test(before)) {
383
- items = ItemsListPush(items, before, nextLine + dStart, nextLine + dStart);
384
- }
385
- else {
386
- items = ItemsAddToPrev(items, before, nextLine);
387
- }
388
- }
389
- envDepth = 1; //entered lstlisting
390
- items = ItemsAddToPrev(items, afterBegin, nextLine); //The part from \begin{lstlisting} to the end of the line is considered a code string.
391
- return { handled: true, envDepth: envDepth, items: items, lineText: lineText };
392
- };
393
- /**
394
- * Try to handle an inline `\end{lstlisting}` on the current line.
395
- *
396
- * Behavior:
397
- * - If not inside an lstlisting environment (`envDepth === 0`), does nothing.
398
- * - If no end marker is found on this line, appends the full line (with original leading whitespace)
399
- * to the current item and reports `handled: true` (still inside the env).
400
- * - If an end marker is present:
401
- * - Appends everything up to `\end{...}` (plus the end token itself) to the current item.
402
- * - Resets `envDepth` to 0 (leaves lstlisting).
403
- * - If there is trailing text after the end token, returns it in `lineText` so the caller
404
- * can continue processing the remainder of the line; otherwise returns an empty `lineText`.
405
- *
406
- * The function does not mutate inputs; it returns the updated state.
407
- *
408
- * @param lineText Current line text (may contain `\end{lstlisting}`).
409
- * @param envDepth Current lstlisting nesting depth (0 if outside).
410
- * @param items Accumulated items list (list builder state).
411
- * @param nextLine Line index used for item position metadata.
412
- * @param state Markdown-It state (used to read the original line with indentation).
413
- * @returns Updated result with flags, depth, items, and remaining line text (if any).
414
- */
415
- var handleLstEndInline = function (lineText, envDepth, items, nextLine, state) {
416
- var _a;
417
- // If we are not inside lstlisting, we exit
418
- if (envDepth === 0) {
419
- return { handled: false, envDepth: envDepth, items: items, lineText: lineText };
420
- }
421
- var me = consts_1.END_LST_INLINE_RE.exec(lineText);
422
- if (!me) {
423
- // There is no end of environment - just add the line as is
424
- lineText = state.src.slice(state.bMarks[nextLine], state.eMarks[nextLine]); // It is important to take into account the leading whitespace characters.
425
- items = ItemsAddToPrev(items, lineText, nextLine);
426
- return { handled: true, envDepth: envDepth, items: items, lineText: lineText };
427
- }
428
- // There is an end of environment in this line
429
- var endIndex = me.index;
430
- var endToken = lineText.slice(endIndex, endIndex + me[0].length);
431
- var beforeEnd = lineText.slice(0, endIndex);
432
- var afterEnd = lineText.slice(endIndex + me[0].length);
433
- // Everything up to \end{...} is a continuation of the code
434
- if (beforeEnd.length > 0) {
435
- items = ItemsAddToPrev(items, beforeEnd + '\n' + endToken, nextLine);
436
- }
437
- else {
438
- items = ItemsAddToPrev(items, endToken, nextLine);
439
- }
440
- envDepth = 0; // Exit lstlisting
441
- if (!((_a = afterEnd === null || afterEnd === void 0 ? void 0 : afterEnd.trim()) === null || _a === void 0 ? void 0 : _a.length)) {
442
- return { handled: true, envDepth: envDepth, items: items, lineText: '' };
443
- }
444
- return { handled: false, envDepth: envDepth, items: items, lineText: afterEnd };
445
- };
446
- var Lists = function (state, startLine, endLine, silent) {
447
- var _a;
448
- var openTag = /\\begin\s{0,}\{(itemize|enumerate)\}/;
449
- var itemTag = /\\item/;
450
- var setcounterTag = /^(?:\\setcounter\s{0,}\{([^}]*)\}\s{0,}\{([^}]*)\})/;
451
- var pos = state.bMarks[startLine] + state.tShift[startLine];
452
- var max = state.eMarks[startLine];
453
- var nextLine = startLine; // + 1;
454
- var dStart = state.md.options.renderElement && state.md.options.renderElement.startLine
455
- ? Number(state.md.options.renderElement.startLine)
456
- : 0;
457
- var oldParentType;
458
- var type;
459
- // let li = null;
460
- var lineText = state.src.slice(pos, max);
461
- if (lineText.charCodeAt(0) !== 0x5c /* \ */) {
462
- return false;
463
- }
464
- var match = lineText.match(openTag);
465
- if (!match) {
466
- return false;
467
- }
468
- var eLevel = (0, re_level_1.GetEnumerateLevel)();
469
- var dataMarkers = (0, re_level_1.GetItemizeLevelTokensByState)(state);
470
- var iLevelT = dataMarkers.tokens;
471
- var iLevelC = dataMarkers.contents;
472
- oldParentType = state.parentType;
473
- var data = ListOpen(state, startLine + dStart, lineText, iLevelT, eLevel, iLevelC);
474
- var _b = data.iOpen, iOpen = _b === void 0 ? 0 : _b, _c = data.tokenStart, tokenStart = _c === void 0 ? null : _c, _d = data.li, li = _d === void 0 ? null : _d;
475
- if (iOpen === 0) {
476
- nextLine += 1;
477
- state.line = nextLine;
478
- state.startLine = '';
479
- state.parentType = oldParentType;
480
- state.level = state.prentLevel < 0 ? 0 : state.prentLevel;
481
- return true;
482
- }
483
- else {
484
- nextLine += 1;
485
- }
486
- var items = [];
487
- var haveClose = false;
488
- var envDepth = 0; // >0 — we are in the code environment
489
- for (; nextLine < endLine; nextLine++) {
490
- pos = state.bMarks[nextLine] + state.tShift[nextLine];
491
- max = state.eMarks[nextLine];
492
- lineText = state.src.slice(pos, max);
493
- // 1) If you are NOT currently inside lstlisting, first search for \begin{lstlisting}
494
- if (envDepth === 0) {
495
- var beginRes = handleLstBeginInline(lineText, envDepth, items, nextLine, dStart, itemTag);
496
- envDepth = beginRes.envDepth;
497
- if (beginRes.handled) {
498
- continue; // this line is already fully processed
499
- }
500
- lineText = beginRes.lineText;
501
- }
502
- // 2) If we are inside lstlisting, we search for \end{lstlisting}
503
- if (envDepth > 0) {
504
- var endRes = handleLstEndInline(lineText, envDepth, items, nextLine, state);
505
- envDepth = endRes.envDepth;
506
- items = endRes.items;
507
- if (endRes.handled) {
508
- continue;
509
- }
510
- lineText = endRes.lineText;
511
- }
512
- if (setcounterTag.test(lineText)) {
513
- match = lineText.match(setcounterTag);
514
- if (match && state.md.options && state.md.options.forLatex) {
515
- var token = state.push("setcounter", "", 0);
516
- token.latex = match[0].trim();
517
- }
518
- if (match && match[2]) {
519
- var sE = match.index + match[0].length < lineText.length
520
- ? lineText.slice(match.index + match[0].length)
521
- : '';
522
- sE = sE.trim();
523
- var startNumber = ((_a = match[2]) === null || _a === void 0 ? void 0 : _a.trim()) && exports.reNumber.test(match[2].trim())
524
- ? Number(match[2].trim()) + 1 : 1;
525
- li = { value: startNumber };
526
- if (sE.length > 0) {
527
- items = ItemsAddToPrev(items, sE, nextLine);
528
- }
529
- continue;
530
- }
531
- }
532
- if (closeTag.test(lineText)) {
533
- var match_1 = lineText.match(closeTag);
534
- if (match_1) {
535
- type = match_1[1].trim() in TBegin ? match_1[1].trim() : null;
536
- if (!type) {
537
- return false;
538
- }
539
- var sB = match_1.index > 0 ? lineText.slice(0, match_1.index) : '';
540
- var sE = match_1.index + match_1[0].length < lineText.length
541
- ? lineText.slice(match_1.index + match_1[0].length)
542
- : '';
543
- sB = sB.trim();
544
- sE = sE.trim();
545
- if (sB.indexOf('`') > -1 && sE.indexOf('`') > -1) {
546
- items = ItemsListPush(items, lineText, nextLine, nextLine);
547
- continue;
548
- }
549
- if (sB.length > 0) {
550
- items = ItemsAddToPrev(items, sB, nextLine);
551
- }
552
- var dataItems = ListItems(state, items, iLevelT, eLevel, li, iOpen, iLevelC);
553
- iOpen = dataItems.iOpen;
554
- if (!tokenStart.padding || tokenStart.padding < dataItems.padding) {
555
- tokenStart.padding = dataItems.padding;
556
- if (tokenStart.padding > 3) {
557
- tokenStart.attrSet('data-padding-inline-start', (tokenStart.padding * 14).toString());
558
- }
559
- }
560
- items = [];
561
- li = null;
562
- setTokenCloseList(state, startLine + dStart, nextLine + dStart);
563
- if (sE.length > 0) {
564
- items = ItemsAddToPrev(items, sE, nextLine);
565
- }
566
- iOpen--;
567
- if (iOpen <= 0) {
568
- haveClose = true;
569
- nextLine += 1;
570
- break;
571
- }
572
- }
573
- continue;
574
- }
575
- if (openTag.test(lineText)) {
576
- var match_2 = lineText.match(openTag);
577
- if (match_2) {
578
- type = match_2[1].trim() in TBegin ? match_2[1].trim() : null;
579
- if (!type) {
580
- return false;
581
- }
582
- var sB = match_2.index > 0 ? lineText.slice(0, match_2.index) : '';
583
- var sE = match_2.index + match_2[0].length < lineText.length
584
- ? lineText.slice(match_2.index + match_2[0].length)
585
- : '';
586
- sB = sB.trim();
587
- sE = sE.trim();
588
- if (sB.indexOf('`') > -1 && sE.indexOf('`') > -1) {
589
- items = ItemsListPush(items, lineText, nextLine, nextLine);
590
- continue;
591
- }
592
- if (sB.length > 0) {
593
- items = ItemsAddToPrev(items, sB, nextLine);
594
- }
595
- var dataItems = ListItems(state, items, iLevelT, eLevel, li, iOpen, iLevelC);
596
- iOpen = dataItems.iOpen;
597
- if (!tokenStart.padding || tokenStart.padding < dataItems.padding) {
598
- tokenStart.padding = dataItems.padding;
599
- if (tokenStart.padding > 3) {
600
- tokenStart.attrSet('data-padding-inline-start', (tokenStart.padding * 14).toString());
601
- }
602
- }
603
- items = [];
604
- li = null;
605
- setTokenOpenList(state, -1, -1, type, iLevelT, eLevel, iLevelC);
606
- if (sE.length > 0) {
607
- items = ItemsAddToPrev(items, sE, nextLine);
608
- }
609
- iOpen++;
610
- }
611
- }
612
- else {
613
- if (itemTag.test(lineText)) {
614
- items = ItemsListPush(items, lineText, nextLine + dStart, nextLine + dStart);
615
- }
616
- else {
617
- items = ItemsAddToPrev(items, lineText, nextLine);
618
- }
619
- }
620
- }
621
- if (!haveClose) {
622
- console.log('NOT CLOSE TAG.');
623
- ListItemsBlock(state, items);
624
- li = null;
625
- //return false
626
- }
627
- state.line = nextLine;
628
- state.startLine = '';
629
- state.parentType = oldParentType;
630
- state.level = state.prentLevel < 0 ? 0 : state.prentLevel;
631
- if (tokenStart) {
632
- tokenStart.map[1] = nextLine + dStart;
633
- }
634
- return true;
635
- };
636
- exports.Lists = Lists;
637
- //# sourceMappingURL=index.js.map