@quarto/jupyterlab-quarto 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +29 -0
- package/README.md +71 -0
- package/lib/const.d.ts +5 -0
- package/lib/const.js +11 -0
- package/lib/const.js.map +1 -0
- package/lib/hooks/codemirror.d.ts +4 -0
- package/lib/hooks/codemirror.js +51 -0
- package/lib/hooks/codemirror.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +57 -0
- package/lib/index.js.map +1 -0
- package/lib/manager.d.ts +8 -0
- package/lib/manager.js +116 -0
- package/lib/manager.js.map +1 -0
- package/lib/plugins/callouts.d.ts +3 -0
- package/lib/plugins/callouts.js +208 -0
- package/lib/plugins/callouts.js.map +1 -0
- package/lib/plugins/cites.d.ts +3 -0
- package/lib/plugins/cites.js +147 -0
- package/lib/plugins/cites.js.map +1 -0
- package/lib/plugins/decorator.d.ts +3 -0
- package/lib/plugins/decorator.js +58 -0
- package/lib/plugins/decorator.js.map +1 -0
- package/lib/plugins/divs.d.ts +6 -0
- package/lib/plugins/divs.js +99 -0
- package/lib/plugins/divs.js.map +1 -0
- package/lib/plugins/figure-divs.d.ts +3 -0
- package/lib/plugins/figure-divs.js +52 -0
- package/lib/plugins/figure-divs.js.map +1 -0
- package/lib/plugins/figures.d.ts +17 -0
- package/lib/plugins/figures.js +98 -0
- package/lib/plugins/figures.js.map +1 -0
- package/lib/plugins/gridtables/common/gridtables/GetCells.d.ts +8 -0
- package/lib/plugins/gridtables/common/gridtables/GetCells.js +44 -0
- package/lib/plugins/gridtables/common/gridtables/GetCells.js.map +1 -0
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.d.ts +8 -0
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js +26 -0
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.d.ts +8 -0
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js +12 -0
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.d.ts +5 -0
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.js +66 -0
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.d.ts +9 -0
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js +18 -0
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/GetLine.d.ts +3 -0
- package/lib/plugins/gridtables/common/markdown-it/GetLine.js +9 -0
- package/lib/plugins/gridtables/common/markdown-it/GetLine.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.d.ts +4 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.js +161 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.js.map +1 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.d.ts +13 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js +17 -0
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js.map +1 -0
- package/lib/plugins/gridtables/index.d.ts +2 -0
- package/lib/plugins/gridtables/index.js +8 -0
- package/lib/plugins/gridtables/index.js.map +1 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.d.ts +11 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.js +5 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.js.map +1 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.d.ts +7 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js +5 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js.map +1 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.d.ts +4 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js +5 -0
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js.map +1 -0
- package/lib/plugins/gridtables/rules/gridtable.d.ts +4 -0
- package/lib/plugins/gridtables/rules/gridtable.js +25 -0
- package/lib/plugins/gridtables/rules/gridtable.js.map +1 -0
- package/lib/plugins/math.d.ts +5 -0
- package/lib/plugins/math.js +174 -0
- package/lib/plugins/math.js.map +1 -0
- package/lib/plugins/mermaid/index.d.ts +3 -0
- package/lib/plugins/mermaid/index.js +53 -0
- package/lib/plugins/mermaid/index.js.map +1 -0
- package/lib/plugins/spans.d.ts +3 -0
- package/lib/plugins/spans.js +38 -0
- package/lib/plugins/table-captions.d.ts +3 -0
- package/lib/plugins/table-captions.js +74 -0
- package/lib/plugins/table-captions.js.map +1 -0
- package/lib/plugins/yaml.d.ts +3 -0
- package/lib/plugins/yaml.js +309 -0
- package/lib/plugins/yaml.js.map +1 -0
- package/lib/providers/attrs.d.ts +2 -0
- package/lib/providers/attrs.js +15 -0
- package/lib/providers/attrs.js.map +1 -0
- package/lib/providers/callouts.d.ts +2 -0
- package/lib/providers/callouts.js +15 -0
- package/lib/providers/callouts.js.map +1 -0
- package/lib/providers/cites.d.ts +2 -0
- package/lib/providers/cites.js +15 -0
- package/lib/providers/cites.js.map +1 -0
- package/lib/providers/decorator.d.ts +2 -0
- package/lib/providers/decorator.js +15 -0
- package/lib/providers/decorator.js.map +1 -0
- package/lib/providers/deflist.d.ts +2 -0
- package/lib/providers/deflist.js +15 -0
- package/lib/providers/deflist.js.map +1 -0
- package/lib/providers/divs.d.ts +2 -0
- package/lib/providers/divs.js +27 -0
- package/lib/providers/divs.js.map +1 -0
- package/lib/providers/figure-divs.d.ts +2 -0
- package/lib/providers/figure-divs.js +15 -0
- package/lib/providers/figure-divs.js.map +1 -0
- package/lib/providers/figures.d.ts +2 -0
- package/lib/providers/figures.js +15 -0
- package/lib/providers/figures.js.map +1 -0
- package/lib/providers/footnotes.d.ts +2 -0
- package/lib/providers/footnotes.js +15 -0
- package/lib/providers/footnotes.js.map +1 -0
- package/lib/providers/gridtables.d.ts +2 -0
- package/lib/providers/gridtables.js +15 -0
- package/lib/providers/gridtables.js.map +1 -0
- package/lib/providers/math.d.ts +2 -0
- package/lib/providers/math.js +104 -0
- package/lib/providers/math.js.map +1 -0
- package/lib/providers/mermaid.d.ts +2 -0
- package/lib/providers/mermaid.js +13 -0
- package/lib/providers/mermaid.js.map +1 -0
- package/lib/providers/provider.d.ts +4 -0
- package/lib/providers/provider.js +12 -0
- package/lib/providers/provider.js.map +1 -0
- package/lib/providers/spans.d.ts +2 -0
- package/lib/providers/spans.js +15 -0
- package/lib/providers/sub.d.ts +2 -0
- package/lib/providers/sub.js +15 -0
- package/lib/providers/sub.js.map +1 -0
- package/lib/providers/sup.d.ts +2 -0
- package/lib/providers/sup.js +15 -0
- package/lib/providers/sup.js.map +1 -0
- package/lib/providers/table-captions.d.ts +2 -0
- package/lib/providers/table-captions.js +15 -0
- package/lib/providers/table-captions.js.map +1 -0
- package/lib/providers/tasklists.d.ts +2 -0
- package/lib/providers/tasklists.js +15 -0
- package/lib/providers/tasklists.js.map +1 -0
- package/lib/providers/yaml.d.ts +2 -0
- package/lib/providers/yaml.js +15 -0
- package/lib/providers/yaml.js.map +1 -0
- package/lib/types.d.ts +44 -0
- package/lib/types.js +1 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/html.d.ts +12 -0
- package/lib/utils/html.js +45 -0
- package/lib/utils/html.js.map +1 -0
- package/lib/utils/markdownit.d.ts +4 -0
- package/lib/utils/markdownit.js +44 -0
- package/lib/utils/markdownit.js.map +1 -0
- package/lib/utils/tok.d.ts +8 -0
- package/lib/utils/tok.js +13 -0
- package/lib/utils/tok.js.map +1 -0
- package/lib/widgets.d.ts +15 -0
- package/lib/widgets.js +57 -0
- package/lib/widgets.js.map +1 -0
- package/package.json +120 -0
- package/schema/plugin.json +8 -0
- package/src/@types/markdown-it-deflist.d.ts +10 -0
- package/src/@types/markdown-it-footnote.d.ts +10 -0
- package/src/@types/markdown-it-gridtables.d.ts +10 -0
- package/src/@types/markdown-it-implicit-figures.d.ts +10 -0
- package/src/@types/markdown-it-sub.d.ts +10 -0
- package/src/@types/markdown-it-sup.d.ts +10 -0
- package/src/@types/markdown-it-task-lists.d.ts +10 -0
- package/style/base.css +340 -0
- package/style/index.css +1 -0
- package/style/index.js +1 -0
@@ -0,0 +1,12 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
var ColumnAlignments;
|
6
|
+
(function (ColumnAlignments) {
|
7
|
+
ColumnAlignments["None"] = "";
|
8
|
+
ColumnAlignments["Left"] = "left";
|
9
|
+
ColumnAlignments["Center"] = "center";
|
10
|
+
ColumnAlignments["Right"] = "right";
|
11
|
+
})(ColumnAlignments || (ColumnAlignments = {}));
|
12
|
+
export default ColumnAlignments;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ColumnAlignments.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/ColumnAlignments.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,IAAK,gBAMJ;AAND,WAAK,gBAAgB;IAEjB,6BAAS,CAAA;IACT,iCAAa,CAAA;IACb,qCAAiB,CAAA;IACjB,mCAAe,CAAA;AACnB,CAAC,EANI,gBAAgB,KAAhB,gBAAgB,QAMpB;AAED,eAAe,gBAAgB,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import * as MarkdownIt from "markdown-it";
|
2
|
+
import IState from "../../interfaces/markdown-it/IState";
|
3
|
+
import ParseTableResult from "./ParseTableResult";
|
4
|
+
export default function emitTable(md: MarkdownIt, state: IState, result: ParseTableResult): void;
|
5
|
+
//# sourceMappingURL=EmitTable.d.ts.map
|
@@ -0,0 +1,66 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
import getCells from "../gridtables/GetCells";
|
6
|
+
import ColumnAlignments from "./ColumnAlignments";
|
7
|
+
export default function emitTable(md, state, result) {
|
8
|
+
let offsets = result.SeparatorLineOffsets;
|
9
|
+
let token = state.push('table_open', 'table', 1);
|
10
|
+
token.map = [offsets[0], offsets[offsets.length - 1]];
|
11
|
+
if (result.HeaderLines.length > 0) {
|
12
|
+
// emit table header
|
13
|
+
const token = state.push('thead_open', 'thead', 1);
|
14
|
+
token.map = [offsets[0], offsets[1]];
|
15
|
+
const cells = getCells(result.HeaderLines);
|
16
|
+
processRow(md, state, 'th', result.ColumnAlignments, offsets[0], offsets[1], cells);
|
17
|
+
state.push('thead_close', 'thead', -1);
|
18
|
+
offsets = offsets.slice(1);
|
19
|
+
}
|
20
|
+
// emit table body
|
21
|
+
token = state.push('tbody_open', 'tbody', 1);
|
22
|
+
token.map = [offsets[0], offsets[offsets.length - 1]];
|
23
|
+
for (let i = 0; i < result.RowLines.length; i++) {
|
24
|
+
let cells = getCells(result.RowLines[i]);
|
25
|
+
processRow(md, state, 'td', result.ColumnAlignments, offsets[i], offsets[i + 1], cells);
|
26
|
+
}
|
27
|
+
state.push('tbody_close', 'tbody', -1);
|
28
|
+
state.push('table_close', 'table', -1);
|
29
|
+
}
|
30
|
+
function processRow(md, state, tag, columnAlignments, lineBegin, lineEnd, cells) {
|
31
|
+
let token = state.push('tr_open', 'tr', 1);
|
32
|
+
token.map = [lineBegin, lineEnd];
|
33
|
+
for (let i = 0; i < cells.length; i++) {
|
34
|
+
let token = state.push(tag + '_open', tag, 1);
|
35
|
+
token.map = [lineBegin + 1, lineEnd - 1];
|
36
|
+
if (columnAlignments[i] !== ColumnAlignments.None) {
|
37
|
+
token.attrSet("style", `text-align: ${columnAlignments[i]};`);
|
38
|
+
}
|
39
|
+
if (cells[i].length === 0) {
|
40
|
+
// empty cell
|
41
|
+
}
|
42
|
+
else if (cells[i].length === 1) {
|
43
|
+
// single line cell -> emit as inline markdown
|
44
|
+
let token = state.push('inline', '', 0);
|
45
|
+
token.content = cells[i][0].trim();
|
46
|
+
token.children = [];
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
// multi line cell -> render and emit as html
|
50
|
+
let cell = md
|
51
|
+
.render(cells[i].join('\r\n'))
|
52
|
+
.trim();
|
53
|
+
// remove single p tag because we're in a table cell
|
54
|
+
if ((cell.slice(0, 3) === '<p>') &&
|
55
|
+
(cell.slice(-4) === '</p>') &&
|
56
|
+
(cell.indexOf('<p>', 3) === -1)) {
|
57
|
+
cell = cell.slice(3, cell.length - 4);
|
58
|
+
}
|
59
|
+
let token = state.push('html_block', '', 0);
|
60
|
+
token.content = cell;
|
61
|
+
token.children = [];
|
62
|
+
}
|
63
|
+
state.push(tag + '_close', tag, -1);
|
64
|
+
}
|
65
|
+
state.push('tr_close', 'tr', -1);
|
66
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"EmitTable.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/EmitTable.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import IState from "../../interfaces/markdown-it/IState";
|
2
|
+
/**
|
3
|
+
* Returns the char code of the character at the start of the current line,
|
4
|
+
* or -1 if this is not available (e.g. on an empty line).
|
5
|
+
*
|
6
|
+
* @param state The Markdown It state.
|
7
|
+
*/
|
8
|
+
export default function getCharCodeAtStartOfLine(state: IState, line: number): number;
|
9
|
+
//# sourceMappingURL=GetCharCodeAtStartOfLine.d.ts.map
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
/**
|
6
|
+
* Returns the char code of the character at the start of the current line,
|
7
|
+
* or -1 if this is not available (e.g. on an empty line).
|
8
|
+
*
|
9
|
+
* @param state The Markdown It state.
|
10
|
+
*/
|
11
|
+
export default function getCharCodeAtStartOfLine(state, line) {
|
12
|
+
const pos = state.bMarks[line] +
|
13
|
+
state.tShift[line];
|
14
|
+
if (pos >= state.eMarks[line]) {
|
15
|
+
return -1;
|
16
|
+
}
|
17
|
+
return state.src.charCodeAt(pos);
|
18
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GetCharCodeAtStartOfLine.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC5C,KAAa,EACb,IAAY;IAGZ,MAAM,GAAG,GACL,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAClB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAC7B;QACI,OAAO,CAAC,CAAC,CAAC;KACb;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
export default function getLine(state, line) {
|
6
|
+
const start = state.bMarks[line] + state.blkIndent;
|
7
|
+
const end = state.eMarks[line];
|
8
|
+
return state.src.substr(start, end - start);
|
9
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GetLine.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/GetLine.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,CAAC,OAAO,UAAU,OAAO,CAC3B,KAAa,EACb,IAAY;IAGZ,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;IAEnD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/B,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CACnB,KAAK,EACL,GAAG,GAAG,KAAK,CAAC,CAAC;AACrB,CAAC"}
|
@@ -0,0 +1,161 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
import wcwidth from "wcwidth";
|
6
|
+
import getColumnWidths from "../gridtables/GetColumnWidths";
|
7
|
+
import ColumnAlignments from "./ColumnAlignments";
|
8
|
+
import getLine from "./GetLine";
|
9
|
+
import ParseTableResult from "./ParseTableResult";
|
10
|
+
export default function parseTable(state, startLine, endLine) {
|
11
|
+
const result = new ParseTableResult();
|
12
|
+
let rowLine = getLine(state, startLine);
|
13
|
+
if (rowLine.charAt(0) !== '+') {
|
14
|
+
// line does not start with a '+'
|
15
|
+
return result;
|
16
|
+
}
|
17
|
+
result.ColumnWidths = getColumnWidths(rowLine);
|
18
|
+
if (result.ColumnWidths.length === 0) {
|
19
|
+
// no columns found
|
20
|
+
return result;
|
21
|
+
}
|
22
|
+
// initialize column alignments
|
23
|
+
result.ColumnAlignments = result.ColumnWidths
|
24
|
+
.map(_ => ColumnAlignments.None);
|
25
|
+
if (rowLine.indexOf(':') >= 0) {
|
26
|
+
// column alignment specifiers present in first row line
|
27
|
+
result.HeaderLess = true;
|
28
|
+
// set column alignments
|
29
|
+
result.ColumnAlignments = getColumnAlignments(rowLine, result.ColumnWidths);
|
30
|
+
// remove alignment specifiers for further matching
|
31
|
+
rowLine = rowLine.replace(/[:]/g, '-');
|
32
|
+
}
|
33
|
+
// create header line matcher
|
34
|
+
const headerLineMatcher = new RegExp('^\\+' +
|
35
|
+
result.ColumnWidths
|
36
|
+
.map(w => `[=:][=]{${w - 3}}[=:]\\+`)
|
37
|
+
.join('') +
|
38
|
+
'$');
|
39
|
+
// build column offsets
|
40
|
+
result.ColumnOffsets = [0];
|
41
|
+
for (let i = 0; i < result.ColumnWidths.length - 1; i++) {
|
42
|
+
result.ColumnOffsets.push(result.ColumnOffsets[i] +
|
43
|
+
result.ColumnWidths[i]);
|
44
|
+
}
|
45
|
+
// create cell line matcher
|
46
|
+
const cellLineMatcher = new RegExp('^\\|' +
|
47
|
+
result.ColumnWidths
|
48
|
+
.map(w => `([^|]{${Math.ceil((w - 1) / 2)},${w - 1}})\\|`)
|
49
|
+
.join('') +
|
50
|
+
'$');
|
51
|
+
// save first separator line offset
|
52
|
+
result.SeparatorLineOffsets.push(startLine);
|
53
|
+
// continue to scan until a complete table is found, or an invalid line is encountered
|
54
|
+
let currentRow = [];
|
55
|
+
let currentLine = startLine + 1;
|
56
|
+
for (; currentLine <= endLine; currentLine++) {
|
57
|
+
const line = getLine(state, currentLine);
|
58
|
+
if (line.charCodeAt(0) === 0x2B) // '+'
|
59
|
+
{
|
60
|
+
// separator line
|
61
|
+
if (currentRow.length === 0) {
|
62
|
+
// no row lines since last separator -> invalid table
|
63
|
+
return result;
|
64
|
+
}
|
65
|
+
// save separator line offset
|
66
|
+
result.SeparatorLineOffsets.push(currentLine);
|
67
|
+
if (line === rowLine) {
|
68
|
+
// new regular row
|
69
|
+
result.RowLines.push(currentRow);
|
70
|
+
if (result.HeaderLines.length === 0) {
|
71
|
+
result.HeaderLess = true;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
else if (!result.HeaderLess &&
|
75
|
+
line.match(headerLineMatcher)) {
|
76
|
+
// found header line
|
77
|
+
if (result.HeaderLines.length > 0 ||
|
78
|
+
result.RowLines.length > 0) {
|
79
|
+
// header already found, or not the first row -> invalid table
|
80
|
+
return result;
|
81
|
+
}
|
82
|
+
// header row
|
83
|
+
result.HeaderLines = currentRow;
|
84
|
+
if (line.indexOf(':') >= 0) {
|
85
|
+
// set column alignments
|
86
|
+
result.ColumnAlignments = getColumnAlignments(line, result.ColumnWidths);
|
87
|
+
}
|
88
|
+
}
|
89
|
+
else {
|
90
|
+
// not a header or regular row -> invalid table
|
91
|
+
return result;
|
92
|
+
}
|
93
|
+
// reset current row
|
94
|
+
currentRow = [];
|
95
|
+
}
|
96
|
+
else if (line.charCodeAt(0) === 0x7C) // '|'
|
97
|
+
{
|
98
|
+
// cell line
|
99
|
+
const matches = line.match(cellLineMatcher);
|
100
|
+
if (matches === null) {
|
101
|
+
// cell line does not match -> invalid table
|
102
|
+
return result;
|
103
|
+
}
|
104
|
+
const cells = validateColumnWidths(matches, result.ColumnWidths);
|
105
|
+
if (cells === null) {
|
106
|
+
// cell line does not match -> invalid table
|
107
|
+
return result;
|
108
|
+
}
|
109
|
+
// add the line to the current row
|
110
|
+
currentRow.push(cells);
|
111
|
+
}
|
112
|
+
else {
|
113
|
+
// not a separator or cell line, check if we have a complete table
|
114
|
+
if (currentRow.length === 0 &&
|
115
|
+
((result.HeaderLines.length > 0) ||
|
116
|
+
(result.RowLines.length > 0))) {
|
117
|
+
// found a complete table
|
118
|
+
break;
|
119
|
+
}
|
120
|
+
return result;
|
121
|
+
}
|
122
|
+
}
|
123
|
+
result.CurrentLine = currentLine;
|
124
|
+
result.Success = true;
|
125
|
+
return result;
|
126
|
+
}
|
127
|
+
function getColumnAlignments(line, columnWidths) {
|
128
|
+
let alignments = [];
|
129
|
+
let left = 1;
|
130
|
+
let right = -1;
|
131
|
+
for (let i = 0; i < columnWidths.length; i++) {
|
132
|
+
right += columnWidths[i];
|
133
|
+
let alignment = ColumnAlignments.None;
|
134
|
+
if (line.charAt(right) === ':') {
|
135
|
+
if (line.charAt(left) === ':') {
|
136
|
+
alignment = ColumnAlignments.Center;
|
137
|
+
}
|
138
|
+
else {
|
139
|
+
alignment = ColumnAlignments.Right;
|
140
|
+
}
|
141
|
+
}
|
142
|
+
else if (line.charAt(left) === ':') {
|
143
|
+
alignment = ColumnAlignments.Left;
|
144
|
+
}
|
145
|
+
alignments.push(alignment);
|
146
|
+
left += columnWidths[i];
|
147
|
+
}
|
148
|
+
return alignments;
|
149
|
+
}
|
150
|
+
function validateColumnWidths(matches, columnWidths) {
|
151
|
+
const cells = [];
|
152
|
+
for (var i = 0; i < columnWidths.length; i++) {
|
153
|
+
const cell = matches[i + 1];
|
154
|
+
const columnWidth = wcwidth(cell) + 1; // add 1 for separator
|
155
|
+
if (columnWidth !== columnWidths[i]) {
|
156
|
+
return null;
|
157
|
+
}
|
158
|
+
cells.push(cell);
|
159
|
+
}
|
160
|
+
return cells;
|
161
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ParseTable.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/ParseTable.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import ColumnAlignments from "./ColumnAlignments";
|
2
|
+
export default class ParseTableResult {
|
3
|
+
Success: boolean;
|
4
|
+
ColumnWidths: number[];
|
5
|
+
ColumnOffsets: number[];
|
6
|
+
ColumnAlignments: ColumnAlignments[];
|
7
|
+
HeaderLess: boolean;
|
8
|
+
HeaderLines: string[][];
|
9
|
+
RowLines: string[][][];
|
10
|
+
SeparatorLineOffsets: number[];
|
11
|
+
CurrentLine: number;
|
12
|
+
}
|
13
|
+
//# sourceMappingURL=ParseTableResult.d.ts.map
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
export default class ParseTableResult {
|
6
|
+
constructor() {
|
7
|
+
this.Success = false;
|
8
|
+
this.ColumnWidths = [];
|
9
|
+
this.ColumnOffsets = [];
|
10
|
+
this.ColumnAlignments = [];
|
11
|
+
this.HeaderLess = false;
|
12
|
+
this.HeaderLines = [];
|
13
|
+
this.RowLines = [];
|
14
|
+
this.SeparatorLineOffsets = [];
|
15
|
+
this.CurrentLine = 0;
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ParseTableResult.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/common/markdown-it/ParseTableResult.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAIhG,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAArC;QAEI,YAAO,GAAY,KAAK,CAAC;QAEzB,iBAAY,GAAa,EAAE,CAAC;QAE5B,kBAAa,GAAa,EAAE,CAAC;QAE7B,qBAAgB,GAAuB,EAAE,CAAC;QAE1C,eAAU,GAAY,KAAK,CAAC;QAE5B,gBAAW,GAAe,EAAE,CAAC;QAE7B,aAAQ,GAAiB,EAAE,CAAC;QAE5B,yBAAoB,GAAa,EAAE,CAAC;QAEpC,gBAAW,GAAW,CAAC,CAAC;IAC5B,CAAC;CAAA"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
import gridTableRule from "./rules/gridtable";
|
6
|
+
export default function gridTableRulePlugin(md, options) {
|
7
|
+
md.block.ruler.before("table", "gridtable", gridTableRule(md));
|
8
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/gridtables/index.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAE9C,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACvC,EAAO,EACP,OAAY;IAEZ,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CACjB,OAAO,EACP,WAAW,EACX,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import IToken from "./IToken";
|
2
|
+
export default interface IState {
|
3
|
+
src: string;
|
4
|
+
bMarks: number[];
|
5
|
+
eMarks: number[];
|
6
|
+
blkIndent: number;
|
7
|
+
tShift: number[];
|
8
|
+
line: number;
|
9
|
+
push(action: string, tag: string, level: number): IToken;
|
10
|
+
}
|
11
|
+
//# sourceMappingURL=IState.d.ts.map
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IState.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/interfaces/markdown-it/IState.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IToken.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/interfaces/markdown-it/IToken.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TRuleFunction.js","sourceRoot":"","sources":["../../../../../src/plugins/gridtables/interfaces/markdown-it/TRuleFunction.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
2
|
+
* Copyright (c) Bas Verweij. All rights reserved.
|
3
|
+
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
5
|
+
import emitTable from "../common/markdown-it/EmitTable";
|
6
|
+
import getCharCodeAtStartOfLine from "../common/markdown-it/GetCharCodeAtStartOfLine";
|
7
|
+
import parseTable from "../common/markdown-it/ParseTable";
|
8
|
+
export default function gridTableRule(md) {
|
9
|
+
return function (state, startLine, endLine, silent) {
|
10
|
+
if (getCharCodeAtStartOfLine(state, startLine) !== 0x2B) {
|
11
|
+
// line does not start with a '+'
|
12
|
+
return false;
|
13
|
+
}
|
14
|
+
let parseResult = parseTable(state, startLine, endLine);
|
15
|
+
if (!parseResult.Success) {
|
16
|
+
return false;
|
17
|
+
}
|
18
|
+
if (silent) {
|
19
|
+
return true;
|
20
|
+
}
|
21
|
+
emitTable(md, state, parseResult);
|
22
|
+
state.line = parseResult.CurrentLine;
|
23
|
+
return true;
|
24
|
+
};
|
25
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"gridtable.js","sourceRoot":"","sources":["../../../../src/plugins/gridtables/rules/gridtable.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAGhG,OAAO,SAAS,MAAM,iCAAiC,CAAC;AACxD,OAAO,wBAAwB,MAAM,gDAAgD,CAAC;AACtF,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAI1D,MAAM,CAAC,OAAO,UAAU,aAAa,CACjC,EAAc;IAGd,OAAO,UACH,KAAa,EACb,SAAiB,EACjB,OAAe,EACf,MAAe;QAGf,IAAI,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EACvD;YACI,iCAAiC;YACjC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,WAAW,GAAG,UAAU,CACxB,KAAK,EACL,SAAS,EACT,OAAO,CAAC,CAAC;QAEb,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB;YACI,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,MAAM,EACV;YACI,OAAO,IAAI,CAAC;SACf;QAED,SAAS,CACL,EAAE,EACF,KAAK,EACL,WAAW,CAAC,CAAC;QAEjB,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC;QAErC,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;AACN,CAAC"}
|