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.
- package/es5/bundle.js +2 -2
- package/es5/index.js +2 -2
- package/lib/markdown/common/consts.d.ts +28 -0
- package/lib/markdown/common/consts.js +46 -2
- package/lib/markdown/common/consts.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.d.ts +5 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +15 -5
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/helper.d.ts +16 -1
- package/lib/markdown/md-block-rule/helper.js +93 -16
- package/lib/markdown/md-block-rule/helper.js.map +1 -1
- package/lib/markdown/md-block-rule/renewcommand.js +1 -1
- package/lib/markdown/md-block-rule/renewcommand.js.map +1 -1
- package/lib/markdown/md-inline-rule/setcounter-section.js +1 -2
- package/lib/markdown/md-inline-rule/setcounter-section.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/index.d.ts +16 -0
- package/lib/markdown/md-latex-lists-env/index.js +55 -0
- package/lib/markdown/md-latex-lists-env/index.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-common.d.ts +31 -0
- package/lib/markdown/md-latex-lists-env/latex-list-common.js +78 -0
- package/lib/markdown/md-latex-lists-env/latex-list-common.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.d.ts +13 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.js +295 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-block.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.d.ts +59 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js +219 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-items.d.ts +75 -0
- package/lib/markdown/md-latex-lists-env/latex-list-items.js +235 -0
- package/lib/markdown/md-latex-lists-env/latex-list-items.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-tokens.d.ts +74 -0
- package/lib/markdown/md-latex-lists-env/latex-list-tokens.js +290 -0
- package/lib/markdown/md-latex-lists-env/latex-list-tokens.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-types.d.ts +52 -0
- package/lib/markdown/md-latex-lists-env/latex-list-types.js +13 -0
- package/lib/markdown/md-latex-lists-env/latex-list-types.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/list-state.d.ts +48 -0
- package/lib/markdown/md-latex-lists-env/list-state.js +86 -0
- package/lib/markdown/md-latex-lists-env/list-state.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/re-level.d.ts +62 -0
- package/lib/markdown/md-latex-lists-env/re-level.js +172 -0
- package/lib/markdown/md-latex-lists-env/re-level.js.map +1 -0
- package/lib/markdown/md-latex-lists-env/render-latex-list-env.d.ts +55 -0
- package/lib/markdown/md-latex-lists-env/render-latex-list-env.js +556 -0
- package/lib/markdown/md-latex-lists-env/render-latex-list-env.js.map +1 -0
- package/lib/markdown/md-theorem/block-rule.js +11 -1
- package/lib/markdown/md-theorem/block-rule.js.map +1 -1
- package/lib/markdown/md-theorem/inline-rule.js +1 -2
- package/lib/markdown/md-theorem/inline-rule.js.map +1 -1
- package/lib/markdown/mdPluginConfigured.d.ts +2 -1
- package/lib/markdown/mdPluginConfigured.js +2 -2
- package/lib/markdown/mdPluginConfigured.js.map +1 -1
- package/lib/markdown/mdPluginText.js +2 -0
- package/lib/markdown/mdPluginText.js.map +1 -1
- package/lib/markdown/utils.d.ts +7 -0
- package/lib/markdown/utils.js +15 -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/lib/markdown/md-block-rule/lists/index.d.ts +0 -9
- package/lib/markdown/md-block-rule/lists/index.js +0 -637
- package/lib/markdown/md-block-rule/lists/index.js.map +0 -1
- package/lib/markdown/md-block-rule/lists/re-level.d.ts +0 -30
- package/lib/markdown/md-block-rule/lists/re-level.js +0 -162
- package/lib/markdown/md-block-rule/lists/re-level.js.map +0 -1
- package/lib/markdown/md-inline-rule/lists.d.ts +0 -5
- package/lib/markdown/md-inline-rule/lists.js +0 -174
- package/lib/markdown/md-inline-rule/lists.js.map +0 -1
- package/lib/markdown/md-renderer-rules/render-lists.d.ts +0 -7
- package/lib/markdown/md-renderer-rules/render-lists.js +0 -339
- package/lib/markdown/md-renderer-rules/render-lists.js.map +0 -1
- package/lib/markdown/mdPluginLists.js +0 -60
- 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 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> </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> </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 ` ` 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> </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 = ' ';
|
|
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,
|
|
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) {
|