mathpix-markdown-it 2.0.38 → 2.0.40
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/README.md +3 -0
- package/doc/changelog.md +128 -0
- package/es5/browser/auto-render.js +1 -1
- package/es5/bundle.js +4 -4
- package/es5/index.js +4 -4
- package/lib/components/mathpix-markdown/index.js +2 -1
- package/lib/components/mathpix-markdown/index.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/markdown/common/consts.d.ts +5 -0
- package/lib/markdown/common/consts.js +17 -5
- package/lib/markdown/common/consts.js.map +1 -1
- package/lib/markdown/common/convert-math-to-html.d.ts +10 -0
- package/lib/markdown/common/convert-math-to-html.js +163 -41
- package/lib/markdown/common/convert-math-to-html.js.map +1 -1
- package/lib/markdown/common/labels.d.ts +9 -1
- package/lib/markdown/common/labels.js +82 -37
- package/lib/markdown/common/labels.js.map +1 -1
- package/lib/markdown/common/reset-mmd-state.d.ts +4 -0
- package/lib/markdown/common/reset-mmd-state.js +30 -0
- package/lib/markdown/common/reset-mmd-state.js.map +1 -0
- package/lib/markdown/common.d.ts +3 -0
- package/lib/markdown/common.js +34 -23
- package/lib/markdown/common.js.map +1 -1
- package/lib/markdown/highlight/highlight-math-token.js +1 -0
- package/lib/markdown/highlight/highlight-math-token.js.map +1 -1
- package/lib/markdown/index.js +22 -8
- package/lib/markdown/index.js.map +1 -1
- package/lib/markdown/mathpix-markdown-plugins.js +21 -1
- package/lib/markdown/mathpix-markdown-plugins.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/common.d.ts +15 -1
- package/lib/markdown/md-block-rule/begin-tabular/common.js +57 -11
- package/lib/markdown/md-block-rule/begin-tabular/common.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/index.d.ts +3 -0
- package/lib/markdown/md-block-rule/begin-tabular/index.js +79 -20
- package/lib/markdown/md-block-rule/begin-tabular/index.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.d.ts +3 -1
- package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js +15 -9
- package/lib/markdown/md-block-rule/begin-tabular/multi-column-row.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.d.ts +2 -1
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js +177 -73
- package/lib/markdown/md-block-rule/begin-tabular/parse-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-cell.d.ts +1 -0
- package/lib/markdown/md-block-rule/begin-tabular/sub-cell.js +11 -23
- package/lib/markdown/md-block-rule/begin-tabular/sub-cell.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.d.ts +0 -6
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.js +10 -21
- package/lib/markdown/md-block-rule/begin-tabular/sub-code.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-math.d.ts +13 -5
- package/lib/markdown/md-block-rule/begin-tabular/sub-math.js +132 -93
- package/lib/markdown/md-block-rule/begin-tabular/sub-math.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.d.ts +3 -1
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js +44 -36
- package/lib/markdown/md-block-rule/begin-tabular/sub-tabular.js.map +1 -1
- package/lib/markdown/md-block-rule/begin-tabular/tabular-td.d.ts +11 -3
- package/lib/markdown/md-block-rule/begin-tabular/tabular-td.js +207 -57
- package/lib/markdown/md-block-rule/begin-tabular/tabular-td.js.map +1 -1
- package/lib/markdown/md-block-rule/mmd-html-block.js +11 -2
- package/lib/markdown/md-block-rule/mmd-html-block.js.map +1 -1
- package/lib/markdown/md-core-rules/set-positions.js +90 -15
- package/lib/markdown/md-core-rules/set-positions.js.map +1 -1
- package/lib/markdown/md-inline-rule/core-inline.js +41 -9
- package/lib/markdown/md-inline-rule/core-inline.js.map +1 -1
- package/lib/markdown/md-inline-rule/tabular.js +5 -2
- package/lib/markdown/md-inline-rule/tabular.js.map +1 -1
- package/lib/markdown/md-latex-footnotes/block-rule.js +72 -3
- package/lib/markdown/md-latex-footnotes/block-rule.js.map +1 -1
- package/lib/markdown/md-latex-lists-env/re-level.js +39 -22
- package/lib/markdown/md-latex-lists-env/re-level.js.map +1 -1
- package/lib/markdown/md-renderer-rules/render-tabular.js +115 -36
- package/lib/markdown/md-renderer-rules/render-tabular.js.map +1 -1
- package/lib/markdown/md-svg-to-base64/base64.js +8 -8
- package/lib/markdown/md-svg-to-base64/base64.js.map +1 -1
- package/lib/markdown/md-theorem/block-rule.js +10 -6
- package/lib/markdown/md-theorem/block-rule.js.map +1 -1
- package/lib/markdown/mdPluginRaw.js +24 -3
- package/lib/markdown/mdPluginRaw.js.map +1 -1
- package/lib/markdown/mdPluginTOC.js +30 -4
- package/lib/markdown/mdPluginTOC.js.map +1 -1
- package/lib/markdown/mdPluginTableTabular.js +46 -1
- package/lib/markdown/mdPluginTableTabular.js.map +1 -1
- package/lib/markdown/utils.js +3 -0
- package/lib/markdown/utils.js.map +1 -1
- package/lib/mathjax/index.js +3 -3
- package/lib/mathjax/index.js.map +1 -1
- package/lib/mathpix-markdown-model/index.d.ts +4 -0
- package/lib/mathpix-markdown-model/index.js +2 -1
- package/lib/mathpix-markdown-model/index.js.map +1 -1
- package/package.json +1 -1
- package/pr-specs/2026-04-global-state-cleanup-and-perf.md +212 -0
- package/pr-specs/2026-04-optimize-tabular-parsing.md +211 -0
- package/pr-specs/2026-05-footnote-perf-and-parser-invariants.md +246 -0
- package/pr-specs/2026-05-tabular-vertical-align-bracket.md +270 -0
- package/lib/markdown/mdPluginSeparateForBlock.d.ts +0 -2
- package/lib/markdown/mdPluginSeparateForBlock.js +0 -209
- package/lib/markdown/mdPluginSeparateForBlock.js.map +0 -1
|
@@ -40,10 +40,11 @@ var getCurrentMC = function (cells, i) {
|
|
|
40
40
|
return res;
|
|
41
41
|
};
|
|
42
42
|
exports.getCurrentMC = getCurrentMC;
|
|
43
|
-
var getMultiColumnMultiRow = function (str, params, forLatex, forPptx) {
|
|
44
|
-
var _a, _b, _c, _d, _e;
|
|
43
|
+
var getMultiColumnMultiRow = function (str, params, forLatex, forPptx, skipVisual) {
|
|
44
|
+
var _a, _b, _c, _d, _e, _f;
|
|
45
45
|
if (forLatex === void 0) { forLatex = false; }
|
|
46
46
|
if (forPptx === void 0) { forPptx = false; }
|
|
47
|
+
if (skipVisual === void 0) { skipVisual = false; }
|
|
47
48
|
var attrs = [];
|
|
48
49
|
var mr = 0;
|
|
49
50
|
var mc = 0;
|
|
@@ -69,6 +70,9 @@ var getMultiColumnMultiRow = function (str, params, forLatex, forPptx) {
|
|
|
69
70
|
}
|
|
70
71
|
}
|
|
71
72
|
vpos = vpos ? vpos.trim() : '';
|
|
73
|
+
// Explicit \multirow[…] wins over row-level bracketDefault. Legacy: undefined → '' (no CSS).
|
|
74
|
+
var effectiveBracket = (_f = (0, common_1.parseTabularPos)(vpos)) !== null && _f !== void 0 ? _f : params.bracketDefault;
|
|
75
|
+
var cellV = effectiveBracket ? (0, common_1.bracketToVAlign)(effectiveBracket) : '';
|
|
72
76
|
if (matchMC) {
|
|
73
77
|
mc = Number(matchMC[1]);
|
|
74
78
|
var align = matchMC[2];
|
|
@@ -76,10 +80,12 @@ var getMultiColumnMultiRow = function (str, params, forLatex, forPptx) {
|
|
|
76
80
|
var cAlign = (0, common_1.getColumnAlign)(align);
|
|
77
81
|
var cLeft = cLines && cLines[0] ? cLines[0] : '';
|
|
78
82
|
var cRight = cLines && cLines[1] ? cLines[1] : '';
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
if (!skipVisual) {
|
|
84
|
+
attrs.push((0, tabular_td_1.setColumnLines)({
|
|
85
|
+
h: cAlign ? cAlign[0] : '',
|
|
86
|
+
v: cellV,
|
|
87
|
+
}, { left: cLeft, right: cRight }));
|
|
88
|
+
}
|
|
83
89
|
if (!forPptx || mc > 1) {
|
|
84
90
|
attrs.push(['colspan', mc.toString()]);
|
|
85
91
|
}
|
|
@@ -87,10 +93,10 @@ var getMultiColumnMultiRow = function (str, params, forLatex, forPptx) {
|
|
|
87
93
|
if (matchMR) {
|
|
88
94
|
mr = Number(nrows);
|
|
89
95
|
var w = width || '';
|
|
90
|
-
if (!matchMC) {
|
|
96
|
+
if (!matchMC && !skipVisual) {
|
|
91
97
|
attrs.push((0, tabular_td_1.setColumnLines)({
|
|
92
98
|
h: params.align ? params.align : '',
|
|
93
|
-
v:
|
|
99
|
+
v: cellV,
|
|
94
100
|
}, { left: params.lLines, right: params.rLines }));
|
|
95
101
|
}
|
|
96
102
|
if (mr > 0) {
|
|
@@ -99,7 +105,7 @@ var getMultiColumnMultiRow = function (str, params, forLatex, forPptx) {
|
|
|
99
105
|
}
|
|
100
106
|
}
|
|
101
107
|
w = w.trim().replace('*', 'auto');
|
|
102
|
-
if (w && w.length > 0) {
|
|
108
|
+
if (w && w.length > 0 && !skipVisual) {
|
|
103
109
|
attrs = (0, tabular_td_1.addStyle)(attrs, "width: ".concat(w, "; "));
|
|
104
110
|
}
|
|
105
111
|
str = str.slice(0, matchMR.index) + str.slice(matchMR.index + matchMR[0].length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-column-row.js","sourceRoot":"","sources":["../../../../src/markdown/md-block-rule/begin-tabular/multi-column-row.ts"],"names":[],"mappings":";;;AACA,2CAAsD;AACtD,6CAA4C;AAC5C,uCAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"multi-column-row.js","sourceRoot":"","sources":["../../../../src/markdown/md-block-rule/begin-tabular/multi-column-row.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { TTokenTabular } from "./index";
|
|
2
|
+
import { TVerticalPos } from './common';
|
|
2
3
|
/**
|
|
3
4
|
* Splits a tabular row into columns by unescaped '&' characters.
|
|
4
5
|
* Escaped '\&' is treated as a literal '&' and does not split columns.
|
|
5
6
|
*/
|
|
6
7
|
export declare const separateByColumns: (str: string) => string[];
|
|
7
|
-
export declare const ParseTabular: (str: string, i: number, align?: string, options?: {}, isSubTabular?: boolean) => Array<TTokenTabular> | null;
|
|
8
|
+
export declare const ParseTabular: (str: string, i: number, align?: string, options?: {}, isSubTabular?: boolean, bracket?: TVerticalPos) => Array<TTokenTabular> | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ParseTabular = exports.separateByColumns = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
4
5
|
var tabular_td_1 = require("./tabular-td");
|
|
5
6
|
var common_1 = require("./common");
|
|
6
7
|
var sub_math_1 = require("./sub-math");
|
|
@@ -8,6 +9,15 @@ var sub_tabular_1 = require("./sub-tabular");
|
|
|
8
9
|
var multi_column_row_1 = require("./multi-column-row");
|
|
9
10
|
var sub_cell_1 = require("./sub-cell");
|
|
10
11
|
var utils_1 = require("../../utils");
|
|
12
|
+
var consts_1 = require("../../common/consts");
|
|
13
|
+
// Column spec letters that carry explicit vertical alignment.
|
|
14
|
+
var EXPLICIT_V_COL_SPEC = 'mpb';
|
|
15
|
+
// Frozen: shared by all td_open in a tabular — extend via spread, not in-place.
|
|
16
|
+
var TD_META_BY_BRACKET = {
|
|
17
|
+
t: Object.freeze({ parentBracket: 't' }),
|
|
18
|
+
c: Object.freeze({ parentBracket: 'c' }),
|
|
19
|
+
b: Object.freeze({ parentBracket: 'b' }),
|
|
20
|
+
};
|
|
11
21
|
/**
|
|
12
22
|
* Splits a tabular row into columns by unescaped '&' characters.
|
|
13
23
|
* Escaped '\&' is treated as a literal '&' and does not split columns.
|
|
@@ -68,14 +78,11 @@ var markColIfHasList = function (colsToFixWidth, colIndex, content) {
|
|
|
68
78
|
if (!(0, common_1.detectLocalBlock)(content)) {
|
|
69
79
|
return;
|
|
70
80
|
}
|
|
71
|
-
|
|
72
|
-
colsToFixWidth.push(colIndex);
|
|
73
|
-
}
|
|
81
|
+
colsToFixWidth.add(colIndex);
|
|
74
82
|
};
|
|
75
|
-
var setTokensTabular = function (str,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (isSubTabular === void 0) { isSubTabular = false; }
|
|
83
|
+
var setTokensTabular = function (str, _a) {
|
|
84
|
+
var _b, _c, _d;
|
|
85
|
+
var _e = _a === void 0 ? {} : _a, _f = _e.align, align = _f === void 0 ? '' : _f, _g = _e.options, options = _g === void 0 ? {} : _g, _h = _e.isSubTabular, isSubTabular = _h === void 0 ? false : _h, bracket = _e.bracket;
|
|
79
86
|
var res = [];
|
|
80
87
|
var rows = getRows(str);
|
|
81
88
|
var cellsAll = (0, common_1.getCellsAll)(rows);
|
|
@@ -83,14 +90,22 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
83
90
|
var data = (0, common_1.getRowLines)(rows, numCol);
|
|
84
91
|
var CellsHLines = data.cLines;
|
|
85
92
|
var CellsHLSpaces = data.cSpaces;
|
|
86
|
-
var colsToFixWidth =
|
|
87
|
-
var
|
|
93
|
+
var colsToFixWidth = new Set();
|
|
94
|
+
var optionBracket = (0, common_1.normalizeDefaultCellVerticalAlign)(options === null || options === void 0 ? void 0 : options.defaultCellVerticalAlign);
|
|
95
|
+
// For HTML rendering: source bracket OR option (incl. 'c').
|
|
96
|
+
var effectiveBracket = bracket !== null && bracket !== void 0 ? bracket : optionBracket;
|
|
97
|
+
var dataAlign = (0, common_1.getVerticallyColumnAlign)(align, numCol, effectiveBracket);
|
|
88
98
|
var cLines = (0, common_1.getColumnLines)(align, numCol);
|
|
89
99
|
var cAlign = dataAlign.cAlign, vAlign = dataAlign.vAlign, cWidth = dataAlign.cWidth, colSpec = dataAlign.colSpec;
|
|
90
100
|
var decimal = (0, common_1.getDecimal)(cAlign, cellsAll);
|
|
91
|
-
var
|
|
101
|
+
var _j = options.forLatex, forLatex = _j === void 0 ? false : _j, _k = options.outMath, outMath = _k === void 0 ? {} : _k;
|
|
102
|
+
var skipVisual = !!(options === null || options === void 0 ? void 0 : options.forMD) || !!forLatex;
|
|
103
|
+
// Option fallback only at top level — nested keeps source bracket (round-trip).
|
|
104
|
+
var latexBracket = bracket !== null && bracket !== void 0 ? bracket : (isSubTabular ? undefined : (optionBracket === 'c' ? undefined : optionBracket));
|
|
105
|
+
// Parent bracket attached to every td_open under forLatex.
|
|
106
|
+
var tdMeta = forLatex && latexBracket ? TD_META_BY_BRACKET[latexBracket] : undefined;
|
|
92
107
|
res.push({ token: 'table_open', type: 'table_open', tag: 'table', n: 1,
|
|
93
|
-
attrs:
|
|
108
|
+
attrs: (0, tabular_td_1.getSharedTableOpenAttrs)(undefined, skipVisual),
|
|
94
109
|
latex: forLatex
|
|
95
110
|
? align
|
|
96
111
|
: outMath.include_table_markdown
|
|
@@ -99,17 +114,18 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
99
114
|
});
|
|
100
115
|
var tableOpen = res[0];
|
|
101
116
|
if (options === null || options === void 0 ? void 0 : options.forPptx) {
|
|
102
|
-
res.push({ token: 'tbody_open', type: 'tbody_open', tag: 'tbody', n: 1, attrs:
|
|
117
|
+
res.push({ token: 'tbody_open', type: 'tbody_open', tag: 'tbody', n: 1, attrs: (0, tabular_td_1.getSharedTbodyOpenAttrs)(numCol) });
|
|
103
118
|
}
|
|
104
119
|
else {
|
|
105
120
|
res.push({ token: 'tbody_open', type: 'tbody_open', tag: 'tbody', n: 1 });
|
|
106
121
|
}
|
|
107
122
|
var MR = new Array(numCol).fill(0);
|
|
108
123
|
var _loop_1 = function (i) {
|
|
124
|
+
var e_1, _l;
|
|
109
125
|
if (!cellsAll[i] || cellsAll[i].length === 0) {
|
|
110
126
|
if (i < cellsAll.length - 1) {
|
|
111
127
|
res.push({ token: 'tr_open', type: 'tr_open', tag: 'tr', n: 1,
|
|
112
|
-
attrs:
|
|
128
|
+
attrs: (0, tabular_td_1.getSharedTrOpenAttrs)(skipVisual),
|
|
113
129
|
latex: forLatex && data && data.sLines && data.sLines.length > i ? data.sLines[i] : ''
|
|
114
130
|
});
|
|
115
131
|
for (var k = 0; k < numCol; k++) {
|
|
@@ -120,20 +136,33 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
120
136
|
var cRight = k === numCol - 1 ? cLines[cLines.length - 1] : cLines[k + 1];
|
|
121
137
|
var cLeft = k === 0 ? cLines[0] : '';
|
|
122
138
|
var data_1 = (0, tabular_td_1.AddTd)('', { h: cAlign[k], v: vAlign[k], w: cWidth[k] }, { left: cLeft, right: cRight, bottom: CellsHLines[i + 1] ? CellsHLines[i + 1][k] : 'none',
|
|
123
|
-
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][k] : 'none' : '' }, CellsHLSpaces[i + 1][k]);
|
|
139
|
+
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][k] : 'none' : '' }, CellsHLSpaces[i + 1][k], null, skipVisual, tdMeta);
|
|
124
140
|
markColIfHasList(colsToFixWidth, k, data_1.content);
|
|
125
|
-
|
|
141
|
+
try {
|
|
142
|
+
for (var _m = (e_1 = void 0, tslib_1.__values(data_1.res)), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
143
|
+
var t = _o.value;
|
|
144
|
+
res.push(t);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
148
|
+
finally {
|
|
149
|
+
try {
|
|
150
|
+
if (_o && !_o.done && (_l = _m.return)) _l.call(_m);
|
|
151
|
+
}
|
|
152
|
+
finally { if (e_1) throw e_1.error; }
|
|
153
|
+
}
|
|
126
154
|
}
|
|
127
|
-
res.push(
|
|
155
|
+
res.push(tabular_td_1.SHARED_TR_CLOSE);
|
|
128
156
|
}
|
|
129
157
|
return "continue";
|
|
130
158
|
}
|
|
131
159
|
res.push({ token: 'tr_open', type: 'tr_open', tag: 'tr', n: 1,
|
|
132
|
-
attrs:
|
|
160
|
+
attrs: (0, tabular_td_1.getSharedTrOpenAttrs)(skipVisual),
|
|
133
161
|
latex: forLatex && data && data.sLines && data.sLines.length > i ? data.sLines[i] : ''
|
|
134
162
|
});
|
|
135
163
|
var cells = (0, exports.separateByColumns)(cellsAll[i]);
|
|
136
164
|
var _loop_2 = function (j) {
|
|
165
|
+
var e_2, _p, e_3, _q, e_4, _r, e_5, _s, e_6, _t;
|
|
137
166
|
var ic = (0, multi_column_row_1.getCurrentMC)(cells, j);
|
|
138
167
|
if (ic >= numCol) {
|
|
139
168
|
return "break";
|
|
@@ -147,16 +176,29 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
147
176
|
var cRight_1 = k === numCol - 1 ? cLines[cLines.length - 1] : cLines[k + 1];
|
|
148
177
|
var cLeft_1 = k === 0 ? cLines[0] : '';
|
|
149
178
|
var data_2 = (0, tabular_td_1.AddTd)('', { h: cAlign[k], v: vAlign[k], w: cWidth[k] }, { left: cLeft_1, right: cRight_1, bottom: CellsHLines[i + 1] ? CellsHLines[i + 1][k] : 'none',
|
|
150
|
-
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][k] : 'none' : '' }, CellsHLSpaces[i + 1][k]);
|
|
179
|
+
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][k] : 'none' : '' }, CellsHLSpaces[i + 1][k], null, skipVisual, tdMeta);
|
|
151
180
|
markColIfHasList(colsToFixWidth, k, data_2.content);
|
|
152
|
-
|
|
181
|
+
try {
|
|
182
|
+
for (var _u = (e_2 = void 0, tslib_1.__values(data_2.res)), _v = _u.next(); !_v.done; _v = _u.next()) {
|
|
183
|
+
var t = _v.value;
|
|
184
|
+
res.push(t);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
188
|
+
finally {
|
|
189
|
+
try {
|
|
190
|
+
if (_v && !_v.done && (_p = _u.return)) _p.call(_u);
|
|
191
|
+
}
|
|
192
|
+
finally { if (e_2) throw e_2.error; }
|
|
193
|
+
}
|
|
153
194
|
}
|
|
154
195
|
return "break";
|
|
155
196
|
}
|
|
156
197
|
var cRight = ic === numCol - 1 ? cLines[cLines.length - 1] : cLines[ic + 1];
|
|
157
198
|
var cLeft = ic === 0 ? cLines[0] : '';
|
|
158
199
|
if (cells[j] && cells[j].trim().length > 0) {
|
|
159
|
-
|
|
200
|
+
// Multicol inherits only non-default brackets (option 'middle' stays no-op).
|
|
201
|
+
var multi = (0, multi_column_row_1.getMultiColumnMultiRow)(cells[j], { lLines: cLines[ic], align: cAlign[ic], rLines: cRight, bracketDefault: latexBracket }, forLatex, options === null || options === void 0 ? void 0 : options.forPptx, skipVisual);
|
|
160
202
|
if (multi) {
|
|
161
203
|
var mr = multi.mr > rows.length ? rows.length : multi.mr;
|
|
162
204
|
var mc = multi.mc > numCol ? numCol : multi.mc;
|
|
@@ -203,7 +245,7 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
203
245
|
else {
|
|
204
246
|
MR[ic] = mr;
|
|
205
247
|
}
|
|
206
|
-
if (mr + i >= rows.length - 1) {
|
|
248
|
+
if (mr + i >= rows.length - 1 && !skipVisual) {
|
|
207
249
|
multi.attrs = (0, tabular_td_1.addHLineIntoStyle)(multi.attrs, CellsHLines[mr + i] ? CellsHLines[mr + i][ic] : 'none');
|
|
208
250
|
}
|
|
209
251
|
}
|
|
@@ -226,14 +268,16 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
226
268
|
return "continue";
|
|
227
269
|
}
|
|
228
270
|
}
|
|
229
|
-
if (
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
271
|
+
if (!skipVisual) {
|
|
272
|
+
if (i === 0) {
|
|
273
|
+
multi.attrs = (0, tabular_td_1.addHLineIntoStyle)(multi.attrs, CellsHLines[i] ? CellsHLines[i][ic] : 'none', 'top');
|
|
274
|
+
}
|
|
275
|
+
if (mr && mr > 0) {
|
|
276
|
+
multi.attrs = (0, tabular_td_1.addHLineIntoStyle)(multi.attrs, CellsHLines[mr + i] ? CellsHLines[mr + i][ic] : 'none');
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
multi.attrs = (0, tabular_td_1.addHLineIntoStyle)(multi.attrs, CellsHLines[i + 1] ? CellsHLines[i + 1][ic] : 'none');
|
|
280
|
+
}
|
|
237
281
|
}
|
|
238
282
|
var tdOpen = {
|
|
239
283
|
token: 'td_open',
|
|
@@ -245,31 +289,33 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
245
289
|
};
|
|
246
290
|
res.push(tdOpen);
|
|
247
291
|
if (forLatex) {
|
|
248
|
-
tdOpen.meta = {
|
|
249
|
-
multi: multi.multi,
|
|
250
|
-
colCount: numCol,
|
|
251
|
-
colSpecs: colSpec,
|
|
252
|
-
currentColIndex: ic,
|
|
253
|
-
isSubTabular: isSubTabular
|
|
254
|
-
};
|
|
292
|
+
tdOpen.meta = tslib_1.__assign(tslib_1.__assign({}, tdMeta), { multi: multi.multi, colCount: numCol, colSpecs: colSpec, currentColIndex: ic, isSubTabular: isSubTabular });
|
|
255
293
|
}
|
|
256
294
|
if (multi.subTable) {
|
|
257
295
|
if (multi.subTable.some(function (item) { return (0, common_1.detectLocalBlock)(item.content); })) {
|
|
258
|
-
|
|
259
|
-
colsToFixWidth.push(ic);
|
|
260
|
-
}
|
|
296
|
+
colsToFixWidth.add(ic);
|
|
261
297
|
if (forLatex) {
|
|
262
298
|
tdOpen.meta.forceMultiFixedWidth = true;
|
|
263
299
|
}
|
|
264
300
|
}
|
|
265
|
-
|
|
301
|
+
try {
|
|
302
|
+
for (var _w = (e_3 = void 0, tslib_1.__values(multi.subTable)), _x = _w.next(); !_x.done; _x = _w.next()) {
|
|
303
|
+
var t = _x.value;
|
|
304
|
+
res.push(t);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
308
|
+
finally {
|
|
309
|
+
try {
|
|
310
|
+
if (_x && !_x.done && (_q = _w.return)) _q.call(_w);
|
|
311
|
+
}
|
|
312
|
+
finally { if (e_3) throw e_3.error; }
|
|
313
|
+
}
|
|
266
314
|
}
|
|
267
315
|
else {
|
|
268
316
|
if (multi.content) {
|
|
269
317
|
if ((0, common_1.detectLocalBlock)(multi.content)) {
|
|
270
|
-
|
|
271
|
-
colsToFixWidth.push(ic);
|
|
272
|
-
}
|
|
318
|
+
colsToFixWidth.add(ic);
|
|
273
319
|
if (forLatex) {
|
|
274
320
|
tdOpen.meta.forceMultiFixedWidth = true;
|
|
275
321
|
}
|
|
@@ -277,7 +323,7 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
277
323
|
res.push({ token: 'inline', type: 'inline', tag: '', n: 0, content: multi.content });
|
|
278
324
|
}
|
|
279
325
|
}
|
|
280
|
-
res.push(
|
|
326
|
+
res.push(tabular_td_1.SHARED_TD_CLOSE);
|
|
281
327
|
return "continue";
|
|
282
328
|
}
|
|
283
329
|
MR[ic] = MR[ic] > 0 ? MR[ic] - 1 : 0;
|
|
@@ -290,28 +336,65 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
290
336
|
}
|
|
291
337
|
var parseMath = (0, sub_math_1.getMathTableContent)(cells[j], 0);
|
|
292
338
|
var content = parseMath || (0, common_1.getContent)(cells[j]);
|
|
293
|
-
var handleSubTable = function (subTable) {
|
|
294
|
-
if (!colsToFixWidth.
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}
|
|
339
|
+
var handleSubTable = function (subTable, vOverride) {
|
|
340
|
+
if (!colsToFixWidth.has(ic)
|
|
341
|
+
&& subTable.some(function (item) { return (0, common_1.detectLocalBlock)(item.content); })) {
|
|
342
|
+
colsToFixWidth.add(ic);
|
|
298
343
|
}
|
|
299
|
-
return (0, tabular_td_1.AddTdSubTable)(subTable, { h: cAlign[ic], v:
|
|
344
|
+
return (0, tabular_td_1.AddTdSubTable)(subTable, { h: cAlign[ic], v: vOverride, w: cWidth[ic] }, {
|
|
300
345
|
left: cLeft,
|
|
301
346
|
right: cRight,
|
|
302
347
|
bottom: CellsHLines[i + 1] ? CellsHLines[i + 1][ic] : 'none',
|
|
303
348
|
top: i === 0 ? (CellsHLines[i] ? CellsHLines[i][ic] : 'none') : ''
|
|
304
|
-
});
|
|
349
|
+
}, skipVisual, tdMeta);
|
|
305
350
|
};
|
|
306
351
|
var parseSub = (0, sub_tabular_1.getSubTabular)(content, 0, true, forLatex);
|
|
307
352
|
if (parseSub && parseSub.length > 0) {
|
|
308
|
-
|
|
353
|
+
var cellV = vAlign[ic];
|
|
354
|
+
// Diagbox always centers, ignoring outer bracket.
|
|
355
|
+
// getSubTabular returns a single wrapper; hasDiagbox is OR'd across all placeholders.
|
|
356
|
+
if ((_b = parseSub[0]) === null || _b === void 0 ? void 0 : _b.hasDiagbox) {
|
|
357
|
+
cellV = 'middle';
|
|
358
|
+
// colSpec may be 'p{2cm}'.
|
|
359
|
+
}
|
|
360
|
+
else if (!EXPLICIT_V_COL_SPEC.includes(((_c = colSpec[ic]) === null || _c === void 0 ? void 0 : _c[0]) || '')) {
|
|
361
|
+
// First nested tabular wins if a cell contains several.
|
|
362
|
+
var placeholder = (_d = content.match(consts_1.doubleAngleBracketUuidPattern)) === null || _d === void 0 ? void 0 : _d[0];
|
|
363
|
+
var cellBracket = placeholder ? (0, sub_tabular_1.getSubTabularBracket)(placeholder) : undefined;
|
|
364
|
+
if (cellBracket)
|
|
365
|
+
cellV = (0, common_1.bracketToVAlign)(cellBracket);
|
|
366
|
+
}
|
|
367
|
+
try {
|
|
368
|
+
for (var _y = (e_4 = void 0, tslib_1.__values(handleSubTable(parseSub, cellV))), _z = _y.next(); !_z.done; _z = _y.next()) {
|
|
369
|
+
var t = _z.value;
|
|
370
|
+
res.push(t);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
374
|
+
finally {
|
|
375
|
+
try {
|
|
376
|
+
if (_z && !_z.done && (_r = _y.return)) _r.call(_y);
|
|
377
|
+
}
|
|
378
|
+
finally { if (e_4) throw e_4.error; }
|
|
379
|
+
}
|
|
309
380
|
return "continue";
|
|
310
381
|
}
|
|
311
382
|
var data_3 = (0, tabular_td_1.AddTd)(content, { h: cAlign[ic], v: vAlign[ic], w: cWidth[ic] }, { left: cLeft, right: cRight, bottom: CellsHLines[i + 1] ? CellsHLines[i + 1][ic] : 'none',
|
|
312
|
-
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][ic] : 'none' : '' }, CellsHLSpaces[i + 1][ic], decimal[ic]);
|
|
383
|
+
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][ic] : 'none' : '' }, CellsHLSpaces[i + 1][ic], decimal[ic], skipVisual, tdMeta);
|
|
313
384
|
markColIfHasList(colsToFixWidth, ic, data_3.content);
|
|
314
|
-
|
|
385
|
+
try {
|
|
386
|
+
for (var _0 = (e_5 = void 0, tslib_1.__values(data_3.res)), _1 = _0.next(); !_1.done; _1 = _0.next()) {
|
|
387
|
+
var t = _1.value;
|
|
388
|
+
res.push(t);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
392
|
+
finally {
|
|
393
|
+
try {
|
|
394
|
+
if (_1 && !_1.done && (_s = _0.return)) _s.call(_0);
|
|
395
|
+
}
|
|
396
|
+
finally { if (e_5) throw e_5.error; }
|
|
397
|
+
}
|
|
315
398
|
}
|
|
316
399
|
else {
|
|
317
400
|
MR[ic] = MR[ic] > 0 ? MR[ic] - 1 : 0;
|
|
@@ -322,9 +405,21 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
322
405
|
return "continue";
|
|
323
406
|
}
|
|
324
407
|
var data_4 = (0, tabular_td_1.AddTd)('', { h: cAlign[ic], v: vAlign[ic], w: cWidth[ic] }, { left: cLeft, right: cRight, bottom: CellsHLines[i + 1] ? CellsHLines[i + 1][ic] : 'none',
|
|
325
|
-
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][ic] : 'none' : '' }, CellsHLSpaces[i + 1][ic]);
|
|
408
|
+
top: i === 0 ? CellsHLines[i] ? CellsHLines[i][ic] : 'none' : '' }, CellsHLSpaces[i + 1][ic], null, skipVisual, tdMeta);
|
|
326
409
|
markColIfHasList(colsToFixWidth, ic, data_4.content);
|
|
327
|
-
|
|
410
|
+
try {
|
|
411
|
+
for (var _2 = (e_6 = void 0, tslib_1.__values(data_4.res)), _3 = _2.next(); !_3.done; _3 = _2.next()) {
|
|
412
|
+
var t = _3.value;
|
|
413
|
+
res.push(t);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
417
|
+
finally {
|
|
418
|
+
try {
|
|
419
|
+
if (_3 && !_3.done && (_t = _2.return)) _t.call(_2);
|
|
420
|
+
}
|
|
421
|
+
finally { if (e_6) throw e_6.error; }
|
|
422
|
+
}
|
|
328
423
|
}
|
|
329
424
|
};
|
|
330
425
|
for (var j = 0; j < numCol; j++) {
|
|
@@ -332,30 +427,39 @@ var setTokensTabular = function (str, align, options, isSubTabular) {
|
|
|
332
427
|
if (state_1 === "break")
|
|
333
428
|
break;
|
|
334
429
|
}
|
|
335
|
-
res.push(
|
|
430
|
+
res.push(tabular_td_1.SHARED_TR_CLOSE);
|
|
336
431
|
};
|
|
337
432
|
for (var i = 0; i < rows.length; i++) {
|
|
338
433
|
_loop_1(i);
|
|
339
434
|
}
|
|
340
|
-
res.push({ token: 'tbody_close', type: 'tbody_close', tag: 'tbody', n: -1,
|
|
341
|
-
latex: forLatex && data && data.sLines && data.sLines.length ? data.sLines[data.sLines.length - 1] : ''
|
|
342
|
-
});
|
|
343
|
-
res.push({ token: 'table_close', type: 'table_close', tag: 'table', n: -1 });
|
|
344
435
|
if (forLatex) {
|
|
436
|
+
res.push({ token: 'tbody_close', type: 'tbody_close', tag: 'tbody', n: -1,
|
|
437
|
+
latex: data && data.sLines && data.sLines.length ? data.sLines[data.sLines.length - 1] : ''
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
else {
|
|
441
|
+
res.push(tabular_td_1.SHARED_TBODY_CLOSE);
|
|
442
|
+
}
|
|
443
|
+
res.push(tabular_td_1.SHARED_TABLE_CLOSE);
|
|
444
|
+
if (forLatex) {
|
|
445
|
+
var colsToFixWidthArr = Array.from(colsToFixWidth);
|
|
345
446
|
tableOpen.meta = {
|
|
346
|
-
colsToFixWidth:
|
|
447
|
+
colsToFixWidth: colsToFixWidthArr,
|
|
347
448
|
colSpecs: colSpec,
|
|
348
449
|
colCount: numCol,
|
|
349
450
|
isSubTabular: isSubTabular,
|
|
350
451
|
vLineSpec: cLines
|
|
351
452
|
};
|
|
352
|
-
if (
|
|
353
|
-
tableOpen.meta.
|
|
453
|
+
if (latexBracket) {
|
|
454
|
+
tableOpen.meta.bracket = latexBracket;
|
|
455
|
+
}
|
|
456
|
+
if (colsToFixWidthArr.length) {
|
|
457
|
+
tableOpen.meta.shouldRewriteColSpec = (0, common_1.shouldRewriteColSpec)(colsToFixWidthArr, colSpec);
|
|
354
458
|
}
|
|
355
459
|
}
|
|
356
460
|
return res;
|
|
357
461
|
};
|
|
358
|
-
var ParseTabular = function (str, i, align, options, isSubTabular) {
|
|
462
|
+
var ParseTabular = function (str, i, align, options, isSubTabular, bracket) {
|
|
359
463
|
if (align === void 0) { align = ''; }
|
|
360
464
|
if (options === void 0) { options = {}; }
|
|
361
465
|
if (isSubTabular === void 0) { isSubTabular = false; }
|
|
@@ -367,27 +471,27 @@ var ParseTabular = function (str, i, align, options, isSubTabular) {
|
|
|
367
471
|
var params = (0, common_1.getParams)(str, posBegin + '\\begin{tabular}'.length);
|
|
368
472
|
if (params) {
|
|
369
473
|
var subT = str.slice(posBegin, posEnd + '\\end{tabular}'.length);
|
|
370
|
-
str = (0, sub_tabular_1.pushSubTabular)(str, subT, [], posBegin, posEnd, i);
|
|
371
|
-
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular);
|
|
474
|
+
str = (0, sub_tabular_1.pushSubTabular)(str, subT, [], posBegin, posEnd, i, 0, params.bracket);
|
|
475
|
+
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular, bracket);
|
|
372
476
|
}
|
|
373
477
|
else {
|
|
374
478
|
var match = str
|
|
375
479
|
.slice(posBegin)
|
|
376
|
-
.match(
|
|
480
|
+
.match(consts_1.BEGIN_TABULAR_BRACKET_RE);
|
|
377
481
|
var subT = str.slice(posBegin, posEnd + '\\end{tabular}'.length);
|
|
378
|
-
str = (0, sub_tabular_1.pushSubTabular)(str, subT, [], posBegin + match.index, posEnd, i);
|
|
379
|
-
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular);
|
|
482
|
+
str = (0, sub_tabular_1.pushSubTabular)(str, subT, [], posBegin + match.index, posEnd, i, 0, (0, common_1.parseTabularPos)(match === null || match === void 0 ? void 0 : match[1]));
|
|
483
|
+
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular, bracket);
|
|
380
484
|
}
|
|
381
485
|
}
|
|
382
486
|
else {
|
|
383
487
|
var subT = str.slice(i, posEnd);
|
|
384
|
-
var subRes = setTokensTabular(subT, align, options);
|
|
488
|
+
var subRes = setTokensTabular(subT, { align: align, options: options, isSubTabular: false, bracket: bracket });
|
|
385
489
|
str = (0, sub_tabular_1.pushSubTabular)(str, subT, subRes, 0, posEnd);
|
|
386
|
-
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular);
|
|
490
|
+
res = (0, exports.ParseTabular)(str, 0, align, options, isSubTabular, bracket);
|
|
387
491
|
}
|
|
388
492
|
}
|
|
389
493
|
else {
|
|
390
|
-
res = setTokensTabular(str, align, options, isSubTabular);
|
|
494
|
+
res = setTokensTabular(str, { align: align, options: options, isSubTabular: isSubTabular, bracket: bracket });
|
|
391
495
|
}
|
|
392
496
|
return res;
|
|
393
497
|
};
|