mathpix-markdown-it 2.0.32 → 2.0.34
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/doc/changelog.md +24 -0
- package/es5/bundle.js +1 -1
- package/es5/index.js +1 -1
- package/lib/markdown/common/consts.d.ts +1 -0
- package/lib/markdown/common/consts.js +3 -2
- package/lib/markdown/common/consts.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-table.js +10 -1
- package/lib/markdown/md-block-rule/begin-table.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/common.d.ts +5 -0
- package/lib/markdown/md-block-rule/begin-tabular/common.js +9 -1
- package/lib/markdown/md-block-rule/begin-tabular/common.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/index.js +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/index.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +4 -5
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js +47 -26
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js +1 -0
- package/lib/markdown/md-latex-lists-env/latex-list-env-inline.js.map +1 -1
- package/package.json +1 -1
- package/pr-specs/2026-01-itemize-support-inside-tabular.md +1 -1
- package/pr-specs/2026-01-nested-tabular-text-prefix-with-lists.md +135 -0
- package/pr-specs/2026-02-fix-stuck-render-malformed-table-close.md +151 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getSubTabular = exports.pushSubTabular = exports.ClearSubTableLists = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
4
5
|
var common_1 = require("./common");
|
|
5
6
|
var consts_1 = require("../../common/consts");
|
|
6
7
|
var sub_cell_1 = require("./sub-cell");
|
|
@@ -11,38 +12,58 @@ var ClearSubTableLists = function () {
|
|
|
11
12
|
subTabular = [];
|
|
12
13
|
};
|
|
13
14
|
exports.ClearSubTableLists = ClearSubTableLists;
|
|
15
|
+
/**
|
|
16
|
+
* Extracts child placeholder IDs from a sub-tabular content string.
|
|
17
|
+
* Returns a list of raw placeholder IDs without angle brackets.
|
|
18
|
+
*/
|
|
19
|
+
var extractChildIds = function (content) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
var placeholderMatches = (_b = (_a = content.match(consts_1.doubleAngleBracketUuidPattern)) !== null && _a !== void 0 ? _a : content.match(consts_1.singleAngleBracketPattern)) !== null && _b !== void 0 ? _b : [];
|
|
22
|
+
return placeholderMatches
|
|
23
|
+
.map(function (match) { return match.replace(consts_1.ANGLE_BRACKETS_RE, ""); })
|
|
24
|
+
.filter(function (s) { return s.length > 0; });
|
|
25
|
+
};
|
|
14
26
|
var pushSubTabular = function (str, subTabularContent, subRes, posBegin, posEnd, i, level) {
|
|
27
|
+
var e_1, _a;
|
|
28
|
+
var _b;
|
|
29
|
+
var _c;
|
|
15
30
|
if (subRes === void 0) { subRes = []; }
|
|
16
31
|
if (posBegin === void 0) { posBegin = 0; }
|
|
17
32
|
if (i === void 0) { i = 0; }
|
|
18
33
|
if (level === void 0) { level = 0; }
|
|
19
34
|
var id = (0, common_1.generateUniqueId)();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
subTabular[index].parents = [id];
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
for (var j = 0; j < match.length; j++) {
|
|
41
|
-
_loop_1(j);
|
|
42
|
-
}
|
|
35
|
+
var childIds = extractChildIds(subTabularContent);
|
|
36
|
+
var _loop_1 = function (childId) {
|
|
37
|
+
var cIdx = subTabular.findIndex(function (item) { return item.id === childId; });
|
|
38
|
+
if (cIdx >= 0) {
|
|
39
|
+
((_b = (_c = subTabular[cIdx]).parents) !== null && _b !== void 0 ? _b : (_c.parents = [])).push(id);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
for (var childIds_1 = tslib_1.__values(childIds), childIds_1_1 = childIds_1.next(); !childIds_1_1.done; childIds_1_1 = childIds_1.next()) {
|
|
44
|
+
var childId = childIds_1_1.value;
|
|
45
|
+
_loop_1(childId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
49
|
+
finally {
|
|
50
|
+
try {
|
|
51
|
+
if (childIds_1_1 && !childIds_1_1.done && (_a = childIds_1.return)) _a.call(childIds_1);
|
|
43
52
|
}
|
|
53
|
+
finally { if (e_1) throw e_1.error; }
|
|
44
54
|
}
|
|
45
|
-
|
|
55
|
+
var isBlockLocal = (0, common_1.detectLocalBlock)(subTabularContent);
|
|
56
|
+
var childBlock = childIds.some(function (cid) {
|
|
57
|
+
var cIdx = subTabular.findIndex(function (item) { return item.id === cid; });
|
|
58
|
+
return cIdx >= 0 ? !!subTabular[cIdx].isBlock : false;
|
|
59
|
+
});
|
|
60
|
+
subTabular.push({
|
|
61
|
+
id: id,
|
|
62
|
+
content: subTabularContent,
|
|
63
|
+
parsed: subRes,
|
|
64
|
+
children: childIds,
|
|
65
|
+
isBlock: isBlockLocal || childBlock,
|
|
66
|
+
});
|
|
46
67
|
if (posBegin > 0) {
|
|
47
68
|
return str.slice(i, posBegin) + "<<".concat(id, ">>") + str.slice(posEnd + '\\end{tabular}'.length, str.length);
|
|
48
69
|
}
|
|
@@ -97,13 +118,13 @@ var getSubTabular = function (sub, i, isCell, forLatex) {
|
|
|
97
118
|
var isBlockRule = false;
|
|
98
119
|
if (idx >= 0) {
|
|
99
120
|
var content = subTabular[idx].content;
|
|
100
|
-
isBlockRule =
|
|
121
|
+
isBlockRule = !!subTabular[idx].isBlock || (0, common_1.detectLocalBlock)(prefix) || (0, common_1.detectLocalBlock)(content);
|
|
101
122
|
if (!isBlockRule || prefix.trim() === "") {
|
|
102
123
|
prefix = prefix.trim();
|
|
103
124
|
}
|
|
104
125
|
}
|
|
105
126
|
else {
|
|
106
|
-
isBlockRule =
|
|
127
|
+
isBlockRule = (0, common_1.detectLocalBlock)(prefix);
|
|
107
128
|
if (!isBlockRule || prefix.trim() === "") {
|
|
108
129
|
prefix = prefix.trim();
|
|
109
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-tabular.js","sourceRoot":"","sources":["../../../../src/markdown/md-block-rule/begin-tabular/sub-tabular.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sub-tabular.js","sourceRoot":"","sources":["../../../../src/markdown/md-block-rule/begin-tabular/sub-tabular.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latex-list-env-inline.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-env-inline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"latex-list-env-inline.js","sourceRoot":"","sources":["../../../src/markdown/md-latex-lists-env/latex-list-env-inline.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mathpix-markdown-it",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.34",
|
|
4
4
|
"description": "Mathpix-markdown-it is an open source implementation of the mathpix-markdown spec written in Typescript. It relies on the following open source libraries: MathJax v3 (to render math with SVGs), markdown-it (for standard Markdown parsing)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"MathJax",
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# PR: Fix line-break handling for nested tabular placeholders with lists
|
|
2
|
+
|
|
3
|
+
Status: Implemented
|
|
4
|
+
Owner: @OlgaRedozubova
|
|
5
|
+
Issue: #17912
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
After adding support for lists inside tabular cells (#17328), a regression was discovered: when a table cell contains content (like a list or text) followed by a nested tabular that itself contains list environments, the rendering would break. The block parsing mode was not properly propagated from nested sub-tabulars to their parent cells.
|
|
12
|
+
|
|
13
|
+
When parsing a tabular cell, nested tabulars are first replaced with UUID placeholders.
|
|
14
|
+
At this stage, child tabulars containing list environments have not yet been expanded.
|
|
15
|
+
Because the parent cell did not yet know that its child placeholders would expand to
|
|
16
|
+
block-level content, the line break before the nested tabular was trimmed.
|
|
17
|
+
|
|
18
|
+
**Impact:**
|
|
19
|
+
- Cells with content followed by nested tabular placeholders rendered incorrectly
|
|
20
|
+
- Line breaks before nested tabulars expanding to lists were removed
|
|
21
|
+
- Tabular environments following such placeholders were not rendered
|
|
22
|
+
|
|
23
|
+
## Goal
|
|
24
|
+
|
|
25
|
+
- Fix rendering for cells that contain content before a nested tabular with lists
|
|
26
|
+
- Propagate block detection status from child sub-tabulars to parent cells
|
|
27
|
+
- Ensure consistent block parsing for all cells containing lists at any nesting level
|
|
28
|
+
|
|
29
|
+
## Non-Goals
|
|
30
|
+
|
|
31
|
+
- Changing the general list-in-tabular rendering behavior
|
|
32
|
+
- Modifying the block detection logic for non-nested cases
|
|
33
|
+
- API or interface changes
|
|
34
|
+
|
|
35
|
+
## Example
|
|
36
|
+
|
|
37
|
+
### Input LaTeX
|
|
38
|
+
|
|
39
|
+
```latex
|
|
40
|
+
\begin{tabular}{|l|}
|
|
41
|
+
\hline
|
|
42
|
+
\begin{itemize}
|
|
43
|
+
\item[] - First item
|
|
44
|
+
\end{itemize} \\
|
|
45
|
+
Text
|
|
46
|
+
\begin{tabular}{|l|}
|
|
47
|
+
\hline \begin{tabular}{l}
|
|
48
|
+
\begin{itemize}
|
|
49
|
+
\item[] - Item in sub table 1
|
|
50
|
+
\end{itemize}
|
|
51
|
+
\end{tabular} \\
|
|
52
|
+
\hline \begin{tabular}{l}
|
|
53
|
+
\begin{itemize}
|
|
54
|
+
\item[] - Item in sub table 2
|
|
55
|
+
\end{itemize}
|
|
56
|
+
\end{tabular} \\
|
|
57
|
+
\hline
|
|
58
|
+
\end{tabular}
|
|
59
|
+
\begin{tabular}{|l|l|}
|
|
60
|
+
\hline cell & \begin{itemize}
|
|
61
|
+
\item[] - Item in sub table 3
|
|
62
|
+
\end{itemize} \\
|
|
63
|
+
\hline
|
|
64
|
+
\end{tabular} \\
|
|
65
|
+
\hline
|
|
66
|
+
\end{tabular}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Before (broken)
|
|
70
|
+
|
|
71
|
+
- **HTML**: Subtable 3 was not rendered
|
|
72
|
+
|
|
73
|
+
### After (fixed)
|
|
74
|
+
|
|
75
|
+
- All nested tabulars render correctly
|
|
76
|
+
- Lists inside deeply nested tabulars are properly detected and rendered
|
|
77
|
+
- Block parsing is triggered for all cells containing lists at any depth
|
|
78
|
+
|
|
79
|
+
## Why This Approach
|
|
80
|
+
|
|
81
|
+
### Why track block status in sub-tabulars?
|
|
82
|
+
|
|
83
|
+
When a cell is parsed, nested tabulars are replaced with UUID placeholders (e.g., `<<uuid>>`). The block detection was only checking the parent cell's direct content—it would see `Text <<uuid>>` and not detect any list environment, even though the nested tabular (behind the placeholder) contained lists.
|
|
84
|
+
|
|
85
|
+
Because block status was not known at placeholder time, the parent cell was treated as inline content. This caused whitespace and line breaks around placeholders to be trimmed before child tabulars were expanded.
|
|
86
|
+
|
|
87
|
+
### Why propagate from children to parents?
|
|
88
|
+
|
|
89
|
+
By storing an `isBlock` flag on each sub-tabular and propagating it upward when a parent references a child placeholder, we ensure that block parsing is triggered correctly regardless of nesting depth.
|
|
90
|
+
|
|
91
|
+
## Approach
|
|
92
|
+
|
|
93
|
+
1. **Track block status in sub-tabulars** — Add `isBlock` and `children` fields to the `TSubTabular` type to track whether a sub-tabular contains block-level content.
|
|
94
|
+
|
|
95
|
+
2. **Propagate block status** — When pushing a new sub-tabular, check if any of its child sub-tabulars have `isBlock: true`. If so, mark the parent as `isBlock: true` as well.
|
|
96
|
+
|
|
97
|
+
3. **Centralize detection** — Extract the block detection logic into a reusable `detectLocalBlock()` function in `common.ts`.
|
|
98
|
+
|
|
99
|
+
4. **Use propagated status** — In `getSubTabular()`, check the stored `isBlock` flag instead of re-testing the content string.
|
|
100
|
+
|
|
101
|
+
## Bug Fixes Included
|
|
102
|
+
|
|
103
|
+
- Fixed removal of line breaks before nested tabular placeholders that expand to lists
|
|
104
|
+
- Prevented subsequent tabular environments from being dropped due to placeholder trimming
|
|
105
|
+
- Ensured block context is propagated before placeholder expansion
|
|
106
|
+
|
|
107
|
+
## Constraints
|
|
108
|
+
|
|
109
|
+
- List rendering outside tabular must remain unchanged
|
|
110
|
+
- Existing tabular tests must pass
|
|
111
|
+
- Parent PR (#17328) functionality must not regress
|
|
112
|
+
|
|
113
|
+
## Testing
|
|
114
|
+
|
|
115
|
+
**New test coverage:**
|
|
116
|
+
- Complex nested tabular with list, text, and multiple nested sub-tabulars containing lists
|
|
117
|
+
- Deeply nested tabulars with itemize environments
|
|
118
|
+
|
|
119
|
+
**Commands:**
|
|
120
|
+
```bash
|
|
121
|
+
npm test
|
|
122
|
+
npm run build
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Risk / Rollback
|
|
126
|
+
|
|
127
|
+
**Risk**: Low
|
|
128
|
+
- Minimal code changes focused on propagating existing block status
|
|
129
|
+
- No changes to parsing logic, only to block detection
|
|
130
|
+
|
|
131
|
+
**Rollback**: Revert PR or pin to version 2.0.32
|
|
132
|
+
|
|
133
|
+
## Related
|
|
134
|
+
|
|
135
|
+
- Issue: #17912 — [mmd] Rendering breaks when a cell starts with text before a nested tabular with lists
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# PR: Fix stuck render on malformed `\end{table>}` close tag
|
|
2
|
+
|
|
3
|
+
Status: Implemented
|
|
4
|
+
Owner: @OlgaRedozubova
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Context
|
|
9
|
+
|
|
10
|
+
When a `\begin{table}` environment has a malformed closing tag (`\end{table>}` with `>` instead of `}`), the renderer hangs indefinitely. Two separate bugs combine to cause this:
|
|
11
|
+
|
|
12
|
+
1. **`BeginTable` consumes content across two tables.** The block rule scans forward looking for `\end{table}`. The malformed `\end{table>}` never matches, so the scan continues until it finds a *second* table's valid `\end{table}`. Everything between the first `\begin{table}` and the second `\end{table}` is consumed as a single massive content blob — including markdown text, `\begin{itemize}`, `\begin{enumerate}`, and the second `\begin{table}`.
|
|
13
|
+
|
|
14
|
+
2. **`latexListEnvInline` returns `true` in silent mode without advancing `state.pos`.** When the massive content is processed by the inline tokenizer, any rule that calls `state.md.inline.skipToken()` in a loop (subscript `~`, emphasis `**`, etc.) encounters a `\begin{itemize}` position. `skipToken` calls `latexListEnvInline` in silent mode, which returns `true` without advancing `state.pos`. This result is cached as `cache[pos] = pos` (self-referencing). Every subsequent `skipToken` call at this position returns the cached no-op. The calling while-loop never makes progress — infinite loop.
|
|
15
|
+
|
|
16
|
+
**Impact:**
|
|
17
|
+
- Any document with a malformed `\end{table>}` followed by a second valid table causes the renderer to hang permanently
|
|
18
|
+
- The browser tab becomes unresponsive
|
|
19
|
+
|
|
20
|
+
## Goal
|
|
21
|
+
|
|
22
|
+
- Prevent `BeginTable` from consuming content across multiple table environments
|
|
23
|
+
- Fix `latexListEnvInline` silent mode to correctly advance `state.pos` so `skipToken` works properly
|
|
24
|
+
- Ensure malformed LaTeX degrades gracefully instead of hanging
|
|
25
|
+
|
|
26
|
+
## Non-Goals
|
|
27
|
+
|
|
28
|
+
- Recovering or rendering malformed `\end{table>}` as a valid table
|
|
29
|
+
- Changing the rendering of well-formed table/figure environments
|
|
30
|
+
- API or interface changes
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
### Input MMD (malformed)
|
|
35
|
+
|
|
36
|
+
```latex
|
|
37
|
+
\begin{table}
|
|
38
|
+
\begin{tabular}{|l|c|}
|
|
39
|
+
\hline
|
|
40
|
+
\textbf{Header} & \textbf{Value} \\
|
|
41
|
+
\hline
|
|
42
|
+
Row 1 & Data 1 \\
|
|
43
|
+
\hline
|
|
44
|
+
\end{tabular}
|
|
45
|
+
\caption{First table}
|
|
46
|
+
\end{table>
|
|
47
|
+
|
|
48
|
+
Some markdown text with **bold** and lists:
|
|
49
|
+
|
|
50
|
+
\begin{itemize}
|
|
51
|
+
\item Item A
|
|
52
|
+
\item Item B
|
|
53
|
+
\end{itemize}
|
|
54
|
+
|
|
55
|
+
\begin{table}
|
|
56
|
+
\begin{tabular}{|l|c|}
|
|
57
|
+
\hline
|
|
58
|
+
\textbf{Header} & \textbf{Value} \\
|
|
59
|
+
\hline
|
|
60
|
+
Row 2 & Data 2 \\
|
|
61
|
+
\hline
|
|
62
|
+
\end{tabular}
|
|
63
|
+
\caption{Second table}
|
|
64
|
+
\end{table}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Before (broken)
|
|
68
|
+
|
|
69
|
+
- **Renderer hangs indefinitely** — browser tab becomes unresponsive
|
|
70
|
+
|
|
71
|
+
### After (fixed)
|
|
72
|
+
|
|
73
|
+
- First table's `\begin{table}` is not matched (malformed close tag) and rendered as plain text
|
|
74
|
+
- Markdown content between the tables renders normally
|
|
75
|
+
- Second table renders correctly as a proper table
|
|
76
|
+
|
|
77
|
+
## Approach
|
|
78
|
+
|
|
79
|
+
### Fix 1: Guard against cross-table consumption in `BeginTable` (`begin-table.ts`)
|
|
80
|
+
|
|
81
|
+
In the for-loop that scans for `\end{table}`, add a check: if a new `\begin{table}` (or `\begin{figure}`) of the same environment type is encountered before finding the close tag, break out of the loop. Table/figure float environments cannot be nested in LaTeX, so a second `\begin{table}` always means the first was never properly closed.
|
|
82
|
+
|
|
83
|
+
```typescript
|
|
84
|
+
// After the closeTag check in the scanning loop:
|
|
85
|
+
const matchNewBegin = lineText.match(RE_BEGIN_TABLE_OR_FIGURE_WITH_PLACEMENT)
|
|
86
|
+
|| lineText.match(RE_BEGIN_FIGURE_OR_TABLE_ENV);
|
|
87
|
+
if (matchNewBegin && matchNewBegin[1]?.trim() === type) {
|
|
88
|
+
break; // isCloseTagExist remains false → returns false
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`isCloseTagExist` remains `false`, so `BeginTable` returns `false` for the first table. The block tokenizer treats the `\begin{table}` line as a paragraph, and the second table is processed normally by a fresh `BeginTable` call.
|
|
93
|
+
|
|
94
|
+
### Fix 2: Advance `state.pos` in silent mode in `latexListEnvInline` (`latex-list-env-inline.ts`)
|
|
95
|
+
|
|
96
|
+
The `latexListEnvInline` rule already computes `env.end` (the position after `\end{itemize}`) before the silent check. Set `state.pos = env.end` before returning `true` in silent mode, so `skipToken` caches the correct advancement.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
if (silent) {
|
|
100
|
+
state.pos = env.end; // advance past the matched environment
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This ensures any rule calling `skipToken` (subscript, emphasis, etc.) correctly skips over complete list environments instead of getting stuck.
|
|
106
|
+
|
|
107
|
+
## Why This Approach
|
|
108
|
+
|
|
109
|
+
### Why break on a new `\begin{table}` instead of limiting scan distance?
|
|
110
|
+
|
|
111
|
+
LaTeX table/figure float environments cannot be nested. A second `\begin{table}` before `\end{table}` is always an error in the input. Breaking early is both correct and simple — no heuristics or arbitrary limits needed.
|
|
112
|
+
|
|
113
|
+
### Why fix both bugs instead of just one?
|
|
114
|
+
|
|
115
|
+
Fix 1 (begin-table.ts) prevents the massive content from being created, which avoids the hang. Fix 2 (latex-list-env-inline.ts) fixes a standalone bug where `skipToken` hangs on any `\begin{itemize}` regardless of context. Either fix alone prevents this specific hang, but both are needed:
|
|
116
|
+
- Fix 1 without Fix 2: a `\begin{itemize}` inside any large inline token (from other code paths) could still hang `skipToken`
|
|
117
|
+
- Fix 2 without Fix 1: the first table would consume the second table's content, producing wrong output even though it wouldn't hang
|
|
118
|
+
|
|
119
|
+
## Files Changed
|
|
120
|
+
|
|
121
|
+
| File | Change |
|
|
122
|
+
|------|--------|
|
|
123
|
+
| `src/markdown/md-block-rule/begin-table.ts` | Add guard to break scanning loop when a new `\begin{table/figure}` of the same type is encountered |
|
|
124
|
+
| `src/markdown/md-latex-lists-env/latex-list-env-inline.ts` | Advance `state.pos` in silent mode before returning `true` |
|
|
125
|
+
|
|
126
|
+
## Constraints
|
|
127
|
+
|
|
128
|
+
- Existing table and figure rendering must remain unchanged
|
|
129
|
+
- Well-formed `\begin{itemize}...\end{itemize}` inline processing must not regress
|
|
130
|
+
- All existing tests must pass
|
|
131
|
+
|
|
132
|
+
## Testing
|
|
133
|
+
|
|
134
|
+
**Manual testing:**
|
|
135
|
+
- Verify the example MMD above renders without hanging
|
|
136
|
+
- Verify well-formed tables with `\begin{itemize}` inside render correctly
|
|
137
|
+
- Verify nested table/figure environments still work
|
|
138
|
+
|
|
139
|
+
**Commands:**
|
|
140
|
+
```bash
|
|
141
|
+
npm run build
|
|
142
|
+
npm test
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Risk / Rollback
|
|
146
|
+
|
|
147
|
+
**Risk**: Low
|
|
148
|
+
- Fix 1: Only adds an early-exit guard to an existing scanning loop; well-formed input never hits this code path
|
|
149
|
+
- Fix 2: One-line change that aligns silent-mode behavior with the non-silent code path
|
|
150
|
+
|
|
151
|
+
**Rollback**: Revert PR or pin to previous version
|