mathpix-markdown-it 1.0.79 → 1.0.81

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 (54) hide show
  1. package/.idea/workspace.xml +528 -609
  2. package/README.md +38 -0
  3. package/assets/mmd-image-properties.webp +0 -0
  4. package/doc/images/theorem_01.png +0 -0
  5. package/doc/images/theorem_02.png +0 -0
  6. package/doc/images/theorem_03.png +0 -0
  7. package/doc/images/theorem_04.png +0 -0
  8. package/doc/images/theorem_05.png +0 -0
  9. package/doc/images/theorem_06.png +0 -0
  10. package/doc/images/theorem_07.png +0 -0
  11. package/doc/images/theorems_and_proofs.png +0 -0
  12. package/doc/theorems.md +265 -0
  13. package/es5/bundle.js +1 -1
  14. package/es5/index.js +1 -1
  15. package/lib/components/mathpix-markdown/index.js +4 -2
  16. package/lib/components/mathpix-markdown/index.js.map +1 -1
  17. package/lib/markdown/common/consts.d.ts +20 -0
  18. package/lib/markdown/common/consts.js +60 -1
  19. package/lib/markdown/common/consts.js.map +1 -1
  20. package/lib/markdown/index.js +4 -2
  21. package/lib/markdown/index.js.map +1 -1
  22. package/lib/markdown/mathpix-markdown-plugins.js +7 -4
  23. package/lib/markdown/mathpix-markdown-plugins.js.map +1 -1
  24. package/lib/markdown/md-block-rule/begin-table.js +5 -6
  25. package/lib/markdown/md-block-rule/begin-table.js.map +1 -1
  26. package/lib/markdown/md-block-rule/helper.d.ts +1 -0
  27. package/lib/markdown/md-block-rule/helper.js +35 -0
  28. package/lib/markdown/md-block-rule/helper.js.map +1 -0
  29. package/lib/markdown/md-block-rule/lists/index.js +4 -18
  30. package/lib/markdown/md-block-rule/lists/index.js.map +1 -1
  31. package/lib/markdown/md-theorem/block-rule.d.ts +4 -0
  32. package/lib/markdown/md-theorem/block-rule.js +405 -0
  33. package/lib/markdown/md-theorem/block-rule.js.map +1 -0
  34. package/lib/markdown/md-theorem/helper.d.ts +34 -0
  35. package/lib/markdown/md-theorem/helper.js +251 -0
  36. package/lib/markdown/md-theorem/helper.js.map +1 -0
  37. package/lib/markdown/md-theorem/index.d.ts +18 -0
  38. package/lib/markdown/md-theorem/index.js +180 -0
  39. package/lib/markdown/md-theorem/index.js.map +1 -0
  40. package/lib/markdown/md-theorem/inline-rule.d.ts +23 -0
  41. package/lib/markdown/md-theorem/inline-rule.js +242 -0
  42. package/lib/markdown/md-theorem/inline-rule.js.map +1 -0
  43. package/lib/markdown/mdPluginRaw.js +18 -3
  44. package/lib/markdown/mdPluginRaw.js.map +1 -1
  45. package/lib/markdown/mdPluginTableTabular.js +3 -0
  46. package/lib/markdown/mdPluginTableTabular.js.map +1 -1
  47. package/lib/markdown/mdPluginText.js +7 -0
  48. package/lib/markdown/mdPluginText.js.map +1 -1
  49. package/lib/mathpix-markdown-model/index.d.ts +4 -0
  50. package/lib/mathpix-markdown-model/index.js +4 -2
  51. package/lib/mathpix-markdown-model/index.js.map +1 -1
  52. package/lib/styles/index.js +1 -1
  53. package/lib/styles/index.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BeginProof = exports.BeginTheorem = exports.newTheoremBlock = void 0;
4
+ var helper_1 = require("../md-block-rule/helper");
5
+ var utils_1 = require("../utils");
6
+ var consts_1 = require("../common/consts");
7
+ var helper_2 = require("./helper");
8
+ exports.newTheoremBlock = function (state, startLine) {
9
+ var nextLine = startLine + 1;
10
+ var endLine = state.lineMax;
11
+ var terminate, i, l;
12
+ var terminatorRules = state.md.block.ruler.getRules('paragraph');
13
+ var content = '';
14
+ var oldParentType = state.parentType;
15
+ state.parentType = 'paragraph';
16
+ for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {
17
+ if (state.sCount[nextLine] - state.blkIndent > 3) {
18
+ continue;
19
+ }
20
+ // quirk for blockquotes, this line should already be checked by that rule
21
+ if (state.sCount[nextLine] < 0) {
22
+ continue;
23
+ }
24
+ // Some tags can terminate paragraph without empty line.
25
+ terminate = false;
26
+ for (i = 0, l = terminatorRules.length; i < l; i++) {
27
+ if (terminatorRules[i](state, nextLine, endLine, true)) {
28
+ terminate = true;
29
+ break;
30
+ }
31
+ }
32
+ if (terminate) {
33
+ break;
34
+ }
35
+ }
36
+ content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();
37
+ var testNewTheorem = /\\newtheorem([^}]*)\s{0,}\{(?<name>[^}]*)\}/;
38
+ if (!testNewTheorem.test(content)
39
+ && !consts_1.reNewCommandQedSymbolG.test(content)
40
+ && !consts_1.reTheoremStyleG.test(content)
41
+ && !consts_1.reSetCounterG.test(content)) {
42
+ return false;
43
+ }
44
+ var children = [];
45
+ state.md.inline.parse(content, state.md, state.env, children);
46
+ var token;
47
+ var newTheoremIndex = (children === null || children === void 0 ? void 0 : children.length) ? children.findIndex(function (item) { return (item.type === "newtheorem"
48
+ || item.type === "theoremstyle"
49
+ || item.type === "renewcommand_qedsymbol"
50
+ || item.type === "theorem_setcounter"); })
51
+ : -1;
52
+ if (newTheoremIndex === -1) {
53
+ return false;
54
+ }
55
+ var childrenFiltered = children.filter(function (item) { return (item.type !== "newtheorem"
56
+ && item.type !== "theoremstyle"
57
+ && item.type !== "softbreak"
58
+ && item.type !== "renewcommand_qedsymbol"
59
+ && item.type !== "theorem_setcounter"); });
60
+ state.line = nextLine;
61
+ token = state.push('paragraph_open', 'div', 1);
62
+ if (childrenFiltered.length) {
63
+ token.attrSet('style', 'margin-top: 0; margin-bottom: 1rem;');
64
+ }
65
+ else {
66
+ token.attrSet('style', 'margin-top: 0; margin-bottom: 0;');
67
+ }
68
+ token.map = [startLine, state.line];
69
+ token.children = [];
70
+ token = state.push('inline', '', 0);
71
+ token.content = "";
72
+ token.children = [];
73
+ var itemBefore = null;
74
+ for (var j = 0; j < children.length; j++) {
75
+ var item = children[j];
76
+ if (item.type === "newtheorem" || item.type === "theoremstyle"
77
+ || item.type === "renewcommand_qedsymbol" || item.type === "theorem_setcounter") {
78
+ itemBefore = item;
79
+ if (state.md.options.forLatex) {
80
+ token.children.push(item);
81
+ }
82
+ continue;
83
+ }
84
+ if (((itemBefore === null || itemBefore === void 0 ? void 0 : itemBefore.type) === "newtheorem" || (itemBefore === null || itemBefore === void 0 ? void 0 : itemBefore.type) === "theoremstyle"
85
+ || (itemBefore === null || itemBefore === void 0 ? void 0 : itemBefore.type) === "renewcommand_qedsymbol" || (itemBefore === null || itemBefore === void 0 ? void 0 : itemBefore.type) === "theorem_setcounter")
86
+ && item.type === "softbreak") {
87
+ itemBefore = item;
88
+ if (state.md.options.forLatex) {
89
+ token.children.push(item);
90
+ }
91
+ continue;
92
+ }
93
+ token.children.push(item);
94
+ itemBefore = item;
95
+ }
96
+ token = state.push('paragraph_close', 'div', -1);
97
+ state.parentType = oldParentType;
98
+ return true;
99
+ };
100
+ exports.BeginTheorem = function (state, startLine, endLine) {
101
+ var _a, _b;
102
+ var pos = state.bMarks[startLine] + state.tShift[startLine];
103
+ var max = state.eMarks[startLine];
104
+ var token;
105
+ var nextLine = startLine + 1;
106
+ var lineText = state.src.slice(pos, max);
107
+ var strBefore = "";
108
+ var match = lineText.match(consts_1.openTagDescription);
109
+ if (!match) {
110
+ match = lineText.match(consts_1.openTag);
111
+ }
112
+ if (!match) {
113
+ return false;
114
+ }
115
+ var envName = ((_a = match.groups) === null || _a === void 0 ? void 0 : _a.name) ? match.groups.name : match[1];
116
+ envName = envName ? envName.trim() : '';
117
+ var envDescription = ((_b = match.groups) === null || _b === void 0 ? void 0 : _b.description) ? match.groups.description
118
+ : match[2] ? match[2] : '';
119
+ envDescription = envDescription ? envDescription.trim() : '';
120
+ if (!envName) {
121
+ return false;
122
+ }
123
+ if (consts_1.latexEnvironments.includes(envName) || consts_1.mathEnvironments.includes(envName)) {
124
+ /** Ignore already defined LaTeX environments */
125
+ return false;
126
+ }
127
+ /** Inline content before theorem block */
128
+ strBefore = match.index > 0 ? lineText.slice(0, match.index) : '';
129
+ var closeTag = utils_1.endTag(envName);
130
+ // let content: string = '';
131
+ var resText = '';
132
+ var isCloseTagExist = false;
133
+ if (closeTag.test(lineText)) {
134
+ /**TODO: inline rule*/
135
+ // if (InlineBlockBeginTable(state, startLine)) {
136
+ // return true;
137
+ // }
138
+ }
139
+ if (match.index + match[0].length < lineText.trim().length) {
140
+ resText = lineText.slice(match.index + match[0].length);
141
+ }
142
+ var latexBegin = match[0];
143
+ var latexEnd = "";
144
+ for (; nextLine < endLine; nextLine++) {
145
+ pos = state.bMarks[nextLine] + state.tShift[nextLine];
146
+ max = state.eMarks[nextLine];
147
+ lineText = state.src.slice(pos, max);
148
+ if (closeTag.test(lineText)) {
149
+ isCloseTagExist = true;
150
+ lineText += '\n';
151
+ break;
152
+ }
153
+ if (resText && lineText) {
154
+ resText += '\n' + lineText;
155
+ }
156
+ else {
157
+ resText += lineText;
158
+ }
159
+ // this would be a code block normally, but after paragraph
160
+ // it's considered a lazy continuation regardless of what's there
161
+ if (state.sCount[nextLine] - state.blkIndent > 3) {
162
+ continue;
163
+ }
164
+ // quirk for blockquotes, this line should already be checked by that rule
165
+ if (state.sCount[nextLine] < 0) {
166
+ continue;
167
+ }
168
+ }
169
+ if (!isCloseTagExist) {
170
+ return false;
171
+ }
172
+ var matchE = lineText.match(closeTag);
173
+ if (matchE) {
174
+ resText += lineText.slice(0, matchE.index);
175
+ latexEnd = matchE[0];
176
+ // pE = matchE.index
177
+ }
178
+ state.line = nextLine + 1;
179
+ token = state.push('paragraph_open', 'div', 1);
180
+ token.map = [startLine, state.line];
181
+ if (strBefore && (strBefore === null || strBefore === void 0 ? void 0 : strBefore.trim())) {
182
+ token = state.push('inline', '', 0);
183
+ token.children = [];
184
+ token.content = strBefore;
185
+ }
186
+ /** Get label from theorem content */
187
+ var label = "";
188
+ match = resText.match(consts_1.labelTag);
189
+ if (match) {
190
+ label = match[1];
191
+ if (!state.md.options.forLatex) {
192
+ resText = resText.replace(consts_1.labelTagG, '');
193
+ }
194
+ }
195
+ var envIndex = envName
196
+ ? helper_2.getTheoremEnvironmentIndex(envName)
197
+ : -1;
198
+ if (envIndex === -1) {
199
+ return false;
200
+ }
201
+ var theoremNumber = helper_2.getTheoremNumber(envIndex, state.env);
202
+ token = state.push('theorem_open', 'div', 1);
203
+ token.environment = envName;
204
+ token.envDescription = envDescription;
205
+ token.envLabel = label;
206
+ token.envNumber = theoremNumber;
207
+ var envItem = helper_2.theoremEnvironments[envIndex];
208
+ token.envStyle = envItem.style;
209
+ if (state.md.options.forLatex) {
210
+ token.latex = latexBegin;
211
+ }
212
+ if (!state.md.options.forLatex) {
213
+ token = state.push("theorem_print_open", "", 0);
214
+ token.envStyle = envItem.style;
215
+ token.latex = envItem.print;
216
+ token.content = "";
217
+ token.children = [];
218
+ token = state.push("inline", "", 0);
219
+ token.content = envItem.print;
220
+ token.children = [];
221
+ token = state.push("theorem_print_close", "", 0);
222
+ token.envNumber = theoremNumber;
223
+ token.envStyle = envItem.style;
224
+ token.envDescription = envDescription;
225
+ token.environment = envName;
226
+ token.content = "";
227
+ token.children = [];
228
+ if (envDescription) {
229
+ token = state.push("theorem_description_open", "", 0);
230
+ token.envStyle = envItem.style;
231
+ token.envDescription = envDescription;
232
+ token.latex = envDescription;
233
+ token.content = "";
234
+ token.children = [];
235
+ token = state.push("inline", "", 0);
236
+ token.content = envDescription;
237
+ token.children = [];
238
+ token = state.push("theorem_description_close", "", 0);
239
+ token.envStyle = envItem.style;
240
+ token.envDescription = envDescription;
241
+ token.content = "";
242
+ token.children = [];
243
+ }
244
+ }
245
+ if (label) {
246
+ var index = helper_2.envNumbers.findIndex(function (item) { return item.label === label; });
247
+ if (index === -1) {
248
+ helper_2.envNumbers.push({
249
+ label: label,
250
+ number: theoremNumber
251
+ });
252
+ }
253
+ }
254
+ helper_1.SetTokensBlockParse(state, resText, 0, 0, true);
255
+ token = state.push('theorem_close', 'div', -1);
256
+ if (state.md.options.forLatex) {
257
+ token.latex = latexEnd;
258
+ }
259
+ token = state.push('paragraph_close', 'div', -1);
260
+ return true;
261
+ };
262
+ exports.BeginProof = function (state, startLine, endLine) {
263
+ var pos = state.bMarks[startLine] + state.tShift[startLine];
264
+ var max = state.eMarks[startLine];
265
+ var token;
266
+ var nextLine = startLine + 1;
267
+ var lineText = state.src.slice(pos, max);
268
+ var strBefore = "";
269
+ var match = lineText.match(consts_1.openTagProof);
270
+ if (!match) {
271
+ return false;
272
+ }
273
+ var envName = match[1] ? match[1].trim() : '';
274
+ if (!envName) {
275
+ return false;
276
+ }
277
+ /** Inline content before proof block */
278
+ strBefore = match.index > 0 ? lineText.slice(0, match.index) : '';
279
+ var closeTag = utils_1.endTag(envName);
280
+ // let content: string = '';
281
+ var resText = '';
282
+ var isCloseTagExist = false;
283
+ if (closeTag.test(lineText)) {
284
+ /**TODO: inline rule*/
285
+ // if (InlineBlockBeginTable(state, startLine)) {
286
+ // return true;
287
+ // }
288
+ }
289
+ if (match.index + match[0].length < lineText.trim().length) {
290
+ resText = lineText.slice(match.index + match[0].length);
291
+ }
292
+ var latexBegin = match[0];
293
+ var latexEnd = "";
294
+ for (; nextLine < endLine; nextLine++) {
295
+ pos = state.bMarks[nextLine] + state.tShift[nextLine];
296
+ max = state.eMarks[nextLine];
297
+ lineText = state.src.slice(pos, max);
298
+ if (closeTag.test(lineText)) {
299
+ isCloseTagExist = true;
300
+ lineText += '\n';
301
+ break;
302
+ }
303
+ if (resText && lineText) {
304
+ resText += '\n' + lineText;
305
+ }
306
+ else {
307
+ resText += state.isEmpty(nextLine) ? '\n' : lineText;
308
+ }
309
+ // this would be a code block normally, but after paragraph
310
+ // it's considered a lazy continuation regardless of what's there
311
+ if (state.sCount[nextLine] - state.blkIndent > 3) {
312
+ continue;
313
+ }
314
+ // quirk for blockquotes, this line should already be checked by that rule
315
+ if (state.sCount[nextLine] < 0) {
316
+ continue;
317
+ }
318
+ }
319
+ if (!isCloseTagExist) {
320
+ return false;
321
+ }
322
+ var matchE = lineText.match(closeTag);
323
+ if (matchE) {
324
+ resText += lineText.slice(0, matchE.index);
325
+ latexEnd = matchE[0];
326
+ // pE = matchE.index
327
+ }
328
+ state.line = nextLine + 1;
329
+ token = state.push('paragraph_open', 'div', 1);
330
+ token.map = [startLine, state.line];
331
+ if (strBefore && (strBefore === null || strBefore === void 0 ? void 0 : strBefore.trim())) {
332
+ token = state.push('inline', '', 0);
333
+ token.children = [];
334
+ token.content = strBefore;
335
+ }
336
+ /** Get label from proof content */
337
+ var label = "";
338
+ match = resText.match(consts_1.labelTag);
339
+ if (match) {
340
+ label = match[1];
341
+ resText = resText.replace(consts_1.labelTagG, '');
342
+ }
343
+ var proofNumber = helper_2.getNextCounterProof();
344
+ token = state.push('proof_open', 'div', 1);
345
+ token.envLabel = label;
346
+ token.envNumber = proofNumber;
347
+ if (state.md.options.forLatex) {
348
+ token.latex = latexBegin;
349
+ }
350
+ if (label) {
351
+ var index = helper_2.envNumbers.findIndex(function (item) { return item.label === label; });
352
+ if (index === -1) {
353
+ helper_2.envNumbers.push({
354
+ label: label,
355
+ number: proofNumber.toString()
356
+ });
357
+ }
358
+ }
359
+ var contentQED = state.env.qedsymbol ? state.env.qedsymbol : consts_1.defQED;
360
+ var children = [];
361
+ state.md.block.parse(resText, state.md, state.env, children);
362
+ for (var j = 0; j < children.length; j++) {
363
+ var child = children[j];
364
+ if ((j === children.length - 1) && !state.md.options.forLatex) {
365
+ token = state.push("qedsymbol_open", "", 0);
366
+ token.content = "";
367
+ token.children = [];
368
+ token = state.push("inline", "", 0);
369
+ token.content = contentQED;
370
+ token.children = [];
371
+ token = state.push("qedsymbol_close", "", 0);
372
+ token.content = "";
373
+ token.children = [];
374
+ }
375
+ token = state.push(child.type, child.tag, child.nesting);
376
+ token.attrs = child.attrs;
377
+ if (j === 0 && token.type === "paragraph_open") {
378
+ if (token.attrs) {
379
+ var style = token.attrGet('style');
380
+ if (style) {
381
+ token.attrSet('style', "display: inline; " + style);
382
+ }
383
+ else {
384
+ token.attrs.push(['style', "display: inline"]);
385
+ }
386
+ }
387
+ else {
388
+ token.attrSet('style', "display: inline");
389
+ }
390
+ token.attrSet('data-display', 'inline');
391
+ }
392
+ if (startLine && endLine) {
393
+ token.map = [startLine, endLine];
394
+ }
395
+ token.content = child.content;
396
+ token.children = child.children;
397
+ }
398
+ token = state.push('proof_close', 'div', -1);
399
+ if (state.md.options.forLatex) {
400
+ token.latex = latexEnd;
401
+ }
402
+ token = state.push('paragraph_close', 'div', -1);
403
+ return true;
404
+ };
405
+ //# sourceMappingURL=block-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-rule.js","sourceRoot":"","sources":["../../../src/markdown/md-theorem/block-rule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export interface ITheoremEnvironmentParents {
2
+ env: string;
3
+ num: number;
4
+ }
5
+ export interface ITheoremEnvironment {
6
+ name: string;
7
+ print: string;
8
+ counter: number;
9
+ counterName: string;
10
+ isNumbered: boolean;
11
+ lastNumber?: string;
12
+ parentNumber?: string;
13
+ parents?: Array<ITheoremEnvironmentParents>;
14
+ style: string;
15
+ useCounter?: string;
16
+ }
17
+ export interface IEnvironmentsCounter {
18
+ environment: string;
19
+ counter: number;
20
+ }
21
+ export declare let theoremEnvironments: Array<ITheoremEnvironment>;
22
+ export declare let envNumbers: any[];
23
+ export declare let counterProof: number;
24
+ export declare let environmentsCounter: Array<IEnvironmentsCounter>;
25
+ export declare const addEnvironmentsCounter: (data: IEnvironmentsCounter) => void;
26
+ export declare const getEnvironmentsCounterIndex: (environment: string) => number;
27
+ export declare const getNextCounterProof: () => number;
28
+ export declare const addTheoremEnvironment: (data: ITheoremEnvironment) => void;
29
+ export declare const setCounterTheoremEnvironment: (envName: string, num: number) => boolean;
30
+ export declare const getTheoremEnvironment: (name: string) => ITheoremEnvironment;
31
+ export declare const getTheoremEnvironmentIndex: (name: string) => number;
32
+ export declare const resetTheoremEnvironments: () => void;
33
+ export declare const getTheoremNumberByLabel: (envLabel: string) => any;
34
+ export declare const getTheoremNumber: (envIndex: number, env: any) => string;