@quarto/jupyterlab-quarto 0.1.45 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (188) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +45 -12
  3. package/lib/__tests__/jupyterlab-quarto.spec.d.ts +3 -0
  4. package/lib/__tests__/jupyterlab-quarto.spec.js +9 -0
  5. package/lib/ast/ast.d.ts +1 -2
  6. package/lib/ast/ast.js +4 -3
  7. package/lib/const.d.ts +1 -2
  8. package/lib/const.js +5 -6
  9. package/lib/hooks/codemirror.d.ts +5 -4
  10. package/lib/hooks/codemirror.js +37 -12
  11. package/lib/index.d.ts +2 -3
  12. package/lib/index.js +6 -5
  13. package/lib/manager.d.ts +2 -2
  14. package/lib/manager.js +14 -16
  15. package/lib/plugins/callouts.d.ts +1 -2
  16. package/lib/plugins/callouts.js +59 -58
  17. package/lib/plugins/cites.d.ts +1 -2
  18. package/lib/plugins/cites.js +41 -23
  19. package/lib/plugins/decorator.d.ts +1 -2
  20. package/lib/plugins/decorator.js +11 -12
  21. package/lib/plugins/divs.d.ts +1 -2
  22. package/lib/plugins/divs.js +20 -9
  23. package/lib/plugins/figure-divs.d.ts +1 -2
  24. package/lib/plugins/figure-divs.js +18 -17
  25. package/lib/plugins/figures.d.ts +3 -4
  26. package/lib/plugins/figures.js +30 -31
  27. package/lib/plugins/gridtables/common/gridtables/GetCells.d.ts +5 -6
  28. package/lib/plugins/gridtables/common/gridtables/GetCells.js +6 -8
  29. package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.d.ts +5 -6
  30. package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js +9 -14
  31. package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.d.ts +0 -1
  32. package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js +0 -1
  33. package/lib/plugins/gridtables/common/markdown-it/EmitTable.d.ts +3 -4
  34. package/lib/plugins/gridtables/common/markdown-it/EmitTable.js +12 -15
  35. package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.d.ts +1 -2
  36. package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js +1 -3
  37. package/lib/plugins/gridtables/common/markdown-it/GetLine.d.ts +1 -2
  38. package/lib/plugins/gridtables/common/markdown-it/GetLine.js +0 -1
  39. package/lib/plugins/gridtables/common/markdown-it/ParseTable.d.ts +2 -3
  40. package/lib/plugins/gridtables/common/markdown-it/ParseTable.js +18 -28
  41. package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.d.ts +1 -2
  42. package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js +0 -1
  43. package/lib/plugins/gridtables/index.d.ts +0 -1
  44. package/lib/plugins/gridtables/index.js +2 -3
  45. package/lib/plugins/gridtables/interfaces/markdown-it/IState.d.ts +1 -2
  46. package/lib/plugins/gridtables/interfaces/markdown-it/IState.js +0 -1
  47. package/lib/plugins/gridtables/interfaces/markdown-it/IToken.d.ts +0 -1
  48. package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js +0 -1
  49. package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.d.ts +1 -2
  50. package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js +0 -1
  51. package/lib/plugins/gridtables/rules/gridtable.d.ts +2 -3
  52. package/lib/plugins/gridtables/rules/gridtable.js +5 -6
  53. package/lib/plugins/index.d.ts +15 -0
  54. package/lib/plugins/index.js +21 -0
  55. package/lib/plugins/math.d.ts +4 -3
  56. package/lib/plugins/math.js +33 -31
  57. package/lib/plugins/mermaid/index.d.ts +1 -2
  58. package/lib/plugins/mermaid/index.js +19 -14
  59. package/lib/plugins/shortcodes.d.ts +1 -2
  60. package/lib/plugins/shortcodes.js +6 -7
  61. package/lib/plugins/spans.d.ts +1 -2
  62. package/lib/plugins/spans.js +2 -4
  63. package/lib/plugins/table-captions.d.ts +1 -2
  64. package/lib/plugins/table-captions.js +19 -16
  65. package/lib/plugins/utils/html.d.ts +1 -2
  66. package/lib/plugins/utils/html.js +19 -15
  67. package/lib/plugins/utils/markdownit.d.ts +0 -1
  68. package/lib/plugins/utils/markdownit.js +14 -13
  69. package/lib/plugins/utils/tok.d.ts +0 -1
  70. package/lib/plugins/utils/tok.js +12 -13
  71. package/lib/plugins/yaml.d.ts +1 -2
  72. package/lib/plugins/yaml.js +59 -49
  73. package/lib/providers/attrs.d.ts +1 -2
  74. package/lib/providers/attrs.js +5 -6
  75. package/lib/providers/callouts.d.ts +1 -2
  76. package/lib/providers/callouts.js +7 -8
  77. package/lib/providers/cites.d.ts +1 -2
  78. package/lib/providers/cites.js +7 -8
  79. package/lib/providers/decorator.d.ts +1 -2
  80. package/lib/providers/decorator.js +7 -8
  81. package/lib/providers/deflist.d.ts +1 -2
  82. package/lib/providers/deflist.js +5 -6
  83. package/lib/providers/divs.d.ts +1 -2
  84. package/lib/providers/divs.js +9 -10
  85. package/lib/providers/figure-divs.d.ts +1 -2
  86. package/lib/providers/figure-divs.js +5 -6
  87. package/lib/providers/figures.d.ts +1 -2
  88. package/lib/providers/figures.js +5 -6
  89. package/lib/providers/footnotes.d.ts +1 -2
  90. package/lib/providers/footnotes.js +5 -6
  91. package/lib/providers/gridtables.d.ts +1 -2
  92. package/lib/providers/gridtables.js +5 -6
  93. package/lib/providers/math.d.ts +1 -2
  94. package/lib/providers/math.js +12 -13
  95. package/lib/providers/mermaid.d.ts +1 -2
  96. package/lib/providers/mermaid.js +10 -9
  97. package/lib/providers/provider.d.ts +1 -2
  98. package/lib/providers/provider.js +0 -1
  99. package/lib/providers/shortcodes.d.ts +1 -2
  100. package/lib/providers/shortcodes.js +5 -6
  101. package/lib/providers/spans.d.ts +1 -2
  102. package/lib/providers/spans.js +8 -9
  103. package/lib/providers/sub.d.ts +1 -2
  104. package/lib/providers/sub.js +5 -6
  105. package/lib/providers/sup.d.ts +1 -2
  106. package/lib/providers/sup.js +5 -6
  107. package/lib/providers/table-captions.d.ts +1 -2
  108. package/lib/providers/table-captions.js +5 -6
  109. package/lib/providers/tasklists.d.ts +1 -2
  110. package/lib/providers/tasklists.js +5 -6
  111. package/lib/providers/yaml.d.ts +1 -2
  112. package/lib/providers/yaml.js +7 -8
  113. package/lib/types.d.ts +0 -1
  114. package/lib/types.js +0 -1
  115. package/lib/widgets.d.ts +0 -1
  116. package/lib/widgets.js +5 -6
  117. package/package.json +103 -37
  118. package/style/base.css +34 -33
  119. package/style/index.css +1 -1
  120. package/lib/__tests__/index.spec.d.ts +0 -6
  121. package/lib/__tests__/index.spec.js +0 -61
  122. package/lib/__tests__/index.spec.js.map +0 -1
  123. package/lib/__tests__/myextension.spec.d.ts +0 -6
  124. package/lib/__tests__/myextension.spec.js +0 -11
  125. package/lib/__tests__/myextension.spec.js.map +0 -1
  126. package/lib/ast/ast.js.map +0 -1
  127. package/lib/const.js.map +0 -1
  128. package/lib/hooks/codemirror.js.map +0 -1
  129. package/lib/index.js.map +0 -1
  130. package/lib/manager.js.map +0 -1
  131. package/lib/plugins/callouts.js.map +0 -1
  132. package/lib/plugins/cites.js.map +0 -1
  133. package/lib/plugins/decorator.js.map +0 -1
  134. package/lib/plugins/divs.js.map +0 -1
  135. package/lib/plugins/figure-divs.js.map +0 -1
  136. package/lib/plugins/figures.js.map +0 -1
  137. package/lib/plugins/gridtables/common/gridtables/GetCells.js.map +0 -1
  138. package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js.map +0 -1
  139. package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js.map +0 -1
  140. package/lib/plugins/gridtables/common/markdown-it/EmitTable.js.map +0 -1
  141. package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js.map +0 -1
  142. package/lib/plugins/gridtables/common/markdown-it/GetLine.js.map +0 -1
  143. package/lib/plugins/gridtables/common/markdown-it/ParseTable.js.map +0 -1
  144. package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js.map +0 -1
  145. package/lib/plugins/gridtables/index.js.map +0 -1
  146. package/lib/plugins/gridtables/interfaces/markdown-it/IState.js.map +0 -1
  147. package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js.map +0 -1
  148. package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js.map +0 -1
  149. package/lib/plugins/gridtables/rules/gridtable.js.map +0 -1
  150. package/lib/plugins/math.js.map +0 -1
  151. package/lib/plugins/mermaid/index.js.map +0 -1
  152. package/lib/plugins/shortcodes.js.map +0 -1
  153. package/lib/plugins/spans.js.map +0 -1
  154. package/lib/plugins/table-captions.js.map +0 -1
  155. package/lib/plugins/utils/html.js.map +0 -1
  156. package/lib/plugins/utils/markdownit.js.map +0 -1
  157. package/lib/plugins/utils/tok.js.map +0 -1
  158. package/lib/plugins/yaml.js.map +0 -1
  159. package/lib/providers/attrs.js.map +0 -1
  160. package/lib/providers/callouts.js.map +0 -1
  161. package/lib/providers/cites.js.map +0 -1
  162. package/lib/providers/decorator.js.map +0 -1
  163. package/lib/providers/deflist.js.map +0 -1
  164. package/lib/providers/divs.js.map +0 -1
  165. package/lib/providers/figure-divs.js.map +0 -1
  166. package/lib/providers/figures.js.map +0 -1
  167. package/lib/providers/footnotes.js.map +0 -1
  168. package/lib/providers/gridtables.js.map +0 -1
  169. package/lib/providers/math.js.map +0 -1
  170. package/lib/providers/mermaid.js.map +0 -1
  171. package/lib/providers/provider.js.map +0 -1
  172. package/lib/providers/shortcodes.js.map +0 -1
  173. package/lib/providers/spans.js.map +0 -1
  174. package/lib/providers/sub.js.map +0 -1
  175. package/lib/providers/sup.js.map +0 -1
  176. package/lib/providers/table-captions.js.map +0 -1
  177. package/lib/providers/tasklists.js.map +0 -1
  178. package/lib/providers/yaml.js.map +0 -1
  179. package/lib/types.js.map +0 -1
  180. package/lib/widgets.js.map +0 -1
  181. package/schema/plugin.json +0 -8
  182. package/src/@types/markdown-it-deflist.d.ts +0 -10
  183. package/src/@types/markdown-it-footnote.d.ts +0 -10
  184. package/src/@types/markdown-it-gridtables.d.ts +0 -10
  185. package/src/@types/markdown-it-implicit-figures.d.ts +0 -10
  186. package/src/@types/markdown-it-sub.d.ts +0 -10
  187. package/src/@types/markdown-it-sup.d.ts +0 -10
  188. package/src/@types/markdown-it-task-lists.d.ts +0 -10
@@ -2,8 +2,8 @@
2
2
  * Copyright (c) Bas Verweij. All rights reserved.
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import getCells from "../gridtables/GetCells";
6
- import ColumnAlignments from "./ColumnAlignments";
5
+ import getCells from '../gridtables/GetCells';
6
+ import ColumnAlignments from './ColumnAlignments';
7
7
  export default function emitTable(md, state, result) {
8
8
  let offsets = result.SeparatorLineOffsets;
9
9
  let token = state.push('table_open', 'table', 1);
@@ -21,42 +21,40 @@ export default function emitTable(md, state, result) {
21
21
  token = state.push('tbody_open', 'tbody', 1);
22
22
  token.map = [offsets[0], offsets[offsets.length - 1]];
23
23
  for (let i = 0; i < result.RowLines.length; i++) {
24
- let cells = getCells(result.RowLines[i]);
24
+ const cells = getCells(result.RowLines[i]);
25
25
  processRow(md, state, 'td', result.ColumnAlignments, offsets[i], offsets[i + 1], cells);
26
26
  }
27
27
  state.push('tbody_close', 'tbody', -1);
28
28
  state.push('table_close', 'table', -1);
29
29
  }
30
30
  function processRow(md, state, tag, columnAlignments, lineBegin, lineEnd, cells) {
31
- let token = state.push('tr_open', 'tr', 1);
31
+ const token = state.push('tr_open', 'tr', 1);
32
32
  token.map = [lineBegin, lineEnd];
33
33
  for (let i = 0; i < cells.length; i++) {
34
- let token = state.push(tag + '_open', tag, 1);
34
+ const token = state.push(tag + '_open', tag, 1);
35
35
  token.map = [lineBegin + 1, lineEnd - 1];
36
36
  if (columnAlignments[i] !== ColumnAlignments.None) {
37
- token.attrSet("style", `text-align: ${columnAlignments[i]};`);
37
+ token.attrSet('style', `text-align: ${columnAlignments[i]};`);
38
38
  }
39
39
  if (cells[i].length === 0) {
40
40
  // empty cell
41
41
  }
42
42
  else if (cells[i].length === 1) {
43
43
  // single line cell -> emit as inline markdown
44
- let token = state.push('inline', '', 0);
44
+ const token = state.push('inline', '', 0);
45
45
  token.content = cells[i][0].trim();
46
46
  token.children = [];
47
47
  }
48
48
  else {
49
49
  // multi line cell -> render and emit as html
50
- let cell = md
51
- .render(cells[i].join('\r\n'))
52
- .trim();
50
+ let cell = md.render(cells[i].join('\r\n')).trim();
53
51
  // 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)) {
52
+ if (cell.slice(0, 3) === '<p>' &&
53
+ cell.slice(-4) === '</p>' &&
54
+ cell.indexOf('<p>', 3) === -1) {
57
55
  cell = cell.slice(3, cell.length - 4);
58
56
  }
59
- let token = state.push('html_block', '', 0);
57
+ const token = state.push('html_block', '', 0);
60
58
  token.content = cell;
61
59
  token.children = [];
62
60
  }
@@ -64,4 +62,3 @@ function processRow(md, state, tag, columnAlignments, lineBegin, lineEnd, cells)
64
62
  }
65
63
  state.push('tr_close', 'tr', -1);
66
64
  }
67
- //# sourceMappingURL=EmitTable.js.map
@@ -1,4 +1,4 @@
1
- import IState from "../../interfaces/markdown-it/IState";
1
+ import IState from '../../interfaces/markdown-it/IState';
2
2
  /**
3
3
  * Returns the char code of the character at the start of the current line,
4
4
  * or -1 if this is not available (e.g. on an empty line).
@@ -6,4 +6,3 @@ import IState from "../../interfaces/markdown-it/IState";
6
6
  * @param state The Markdown It state.
7
7
  */
8
8
  export default function getCharCodeAtStartOfLine(state: IState, line: number): number;
9
- //# sourceMappingURL=GetCharCodeAtStartOfLine.d.ts.map
@@ -9,11 +9,9 @@
9
9
  * @param state The Markdown It state.
10
10
  */
11
11
  export default function getCharCodeAtStartOfLine(state, line) {
12
- const pos = state.bMarks[line] +
13
- state.tShift[line];
12
+ const pos = state.bMarks[line] + state.tShift[line];
14
13
  if (pos >= state.eMarks[line]) {
15
14
  return -1;
16
15
  }
17
16
  return state.src.charCodeAt(pos);
18
17
  }
19
- //# sourceMappingURL=GetCharCodeAtStartOfLine.js.map
@@ -1,3 +1,2 @@
1
- import IState from "../../interfaces/markdown-it/IState";
1
+ import IState from '../../interfaces/markdown-it/IState';
2
2
  export default function getLine(state: IState, line: number): string;
3
- //# sourceMappingURL=GetLine.d.ts.map
@@ -7,4 +7,3 @@ export default function getLine(state, line) {
7
7
  const end = state.eMarks[line];
8
8
  return state.src.substr(start, end - start);
9
9
  }
10
- //# sourceMappingURL=GetLine.js.map
@@ -1,4 +1,3 @@
1
- import IState from "../../interfaces/markdown-it/IState";
2
- import ParseTableResult from "./ParseTableResult";
1
+ import IState from '../../interfaces/markdown-it/IState';
2
+ import ParseTableResult from './ParseTableResult';
3
3
  export default function parseTable(state: IState, startLine: number, endLine: number): ParseTableResult;
4
- //# sourceMappingURL=ParseTable.d.ts.map
@@ -2,11 +2,11 @@
2
2
  * Copyright (c) Bas Verweij. All rights reserved.
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
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";
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
10
  export default function parseTable(state, startLine, endLine) {
11
11
  const result = new ParseTableResult();
12
12
  let rowLine = getLine(state, startLine);
@@ -20,8 +20,7 @@ export default function parseTable(state, startLine, endLine) {
20
20
  return result;
21
21
  }
22
22
  // initialize column alignments
23
- result.ColumnAlignments = result.ColumnWidths
24
- .map(_ => ColumnAlignments.None);
23
+ result.ColumnAlignments = result.ColumnWidths.map(() => ColumnAlignments.None);
25
24
  if (rowLine.indexOf(':') >= 0) {
26
25
  // column alignment specifiers present in first row line
27
26
  result.HeaderLess = true;
@@ -32,21 +31,16 @@ export default function parseTable(state, startLine, endLine) {
32
31
  }
33
32
  // create header line matcher
34
33
  const headerLineMatcher = new RegExp('^\\+' +
35
- result.ColumnWidths
36
- .map(w => `[=:][=]{${w - 3}}[=:]\\+`)
37
- .join('') +
34
+ result.ColumnWidths.map(w => `[=:][=]{${w - 3}}[=:]\\+`).join('') +
38
35
  '$');
39
36
  // build column offsets
40
37
  result.ColumnOffsets = [0];
41
38
  for (let i = 0; i < result.ColumnWidths.length - 1; i++) {
42
- result.ColumnOffsets.push(result.ColumnOffsets[i] +
43
- result.ColumnWidths[i]);
39
+ result.ColumnOffsets.push(result.ColumnOffsets[i] + result.ColumnWidths[i]);
44
40
  }
45
41
  // create cell line matcher
46
42
  const cellLineMatcher = new RegExp('^\\|' +
47
- result.ColumnWidths
48
- .map(w => `([^|]{${Math.ceil((w - 1) / 2)},${w - 1}})\\|`)
49
- .join('') +
43
+ result.ColumnWidths.map(w => `([^|]{${Math.ceil((w - 1) / 2)},${w - 1}})\\|`).join('') +
50
44
  '$');
51
45
  // save first separator line offset
52
46
  result.SeparatorLineOffsets.push(startLine);
@@ -55,8 +49,8 @@ export default function parseTable(state, startLine, endLine) {
55
49
  let currentLine = startLine + 1;
56
50
  for (; currentLine <= endLine; currentLine++) {
57
51
  const line = getLine(state, currentLine);
58
- if (line.charCodeAt(0) === 0x2B) // '+'
59
- {
52
+ if (line.charCodeAt(0) === 0x2b) {
53
+ // '+'
60
54
  // separator line
61
55
  if (currentRow.length === 0) {
62
56
  // no row lines since last separator -> invalid table
@@ -71,11 +65,9 @@ export default function parseTable(state, startLine, endLine) {
71
65
  result.HeaderLess = true;
72
66
  }
73
67
  }
74
- else if (!result.HeaderLess &&
75
- line.match(headerLineMatcher)) {
68
+ else if (!result.HeaderLess && line.match(headerLineMatcher)) {
76
69
  // found header line
77
- if (result.HeaderLines.length > 0 ||
78
- result.RowLines.length > 0) {
70
+ if (result.HeaderLines.length > 0 || result.RowLines.length > 0) {
79
71
  // header already found, or not the first row -> invalid table
80
72
  return result;
81
73
  }
@@ -93,8 +85,8 @@ export default function parseTable(state, startLine, endLine) {
93
85
  // reset current row
94
86
  currentRow = [];
95
87
  }
96
- else if (line.charCodeAt(0) === 0x7C) // '|'
97
- {
88
+ else if (line.charCodeAt(0) === 0x7c) {
89
+ // '|'
98
90
  // cell line
99
91
  const matches = line.match(cellLineMatcher);
100
92
  if (matches === null) {
@@ -112,8 +104,7 @@ export default function parseTable(state, startLine, endLine) {
112
104
  else {
113
105
  // not a separator or cell line, check if we have a complete table
114
106
  if (currentRow.length === 0 &&
115
- ((result.HeaderLines.length > 0) ||
116
- (result.RowLines.length > 0))) {
107
+ (result.HeaderLines.length > 0 || result.RowLines.length > 0)) {
117
108
  // found a complete table
118
109
  break;
119
110
  }
@@ -125,7 +116,7 @@ export default function parseTable(state, startLine, endLine) {
125
116
  return result;
126
117
  }
127
118
  function getColumnAlignments(line, columnWidths) {
128
- let alignments = [];
119
+ const alignments = [];
129
120
  let left = 1;
130
121
  let right = -1;
131
122
  for (let i = 0; i < columnWidths.length; i++) {
@@ -149,7 +140,7 @@ function getColumnAlignments(line, columnWidths) {
149
140
  }
150
141
  function validateColumnWidths(matches, columnWidths) {
151
142
  const cells = [];
152
- for (var i = 0; i < columnWidths.length; i++) {
143
+ for (let i = 0; i < columnWidths.length; i++) {
153
144
  const cell = matches[i + 1];
154
145
  const columnWidth = wcwidth(cell) + 1; // add 1 for separator
155
146
  if (columnWidth !== columnWidths[i]) {
@@ -159,4 +150,3 @@ function validateColumnWidths(matches, columnWidths) {
159
150
  }
160
151
  return cells;
161
152
  }
162
- //# sourceMappingURL=ParseTable.js.map
@@ -1,4 +1,4 @@
1
- import ColumnAlignments from "./ColumnAlignments";
1
+ import ColumnAlignments from './ColumnAlignments';
2
2
  export default class ParseTableResult {
3
3
  Success: boolean;
4
4
  ColumnWidths: number[];
@@ -10,4 +10,3 @@ export default class ParseTableResult {
10
10
  SeparatorLineOffsets: number[];
11
11
  CurrentLine: number;
12
12
  }
13
- //# sourceMappingURL=ParseTableResult.d.ts.map
@@ -15,4 +15,3 @@ export default class ParseTableResult {
15
15
  this.CurrentLine = 0;
16
16
  }
17
17
  }
18
- //# sourceMappingURL=ParseTableResult.js.map
@@ -1,2 +1 @@
1
1
  export default function gridTableRulePlugin(md: any): void;
2
- //# sourceMappingURL=index.d.ts.map
@@ -2,10 +2,9 @@
2
2
  * Copyright (c) Bas Verweij. All rights reserved.
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import gridTableRule from "./rules/gridtable";
5
+ import gridTableRule from './rules/gridtable';
6
6
  export default function gridTableRulePlugin(
7
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
8
  md) {
9
- md.block.ruler.before("table", "gridtable", gridTableRule(md));
9
+ md.block.ruler.before('table', 'gridtable', gridTableRule(md));
10
10
  }
11
- //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import IToken from "./IToken";
1
+ import IToken from './IToken';
2
2
  export default interface IState {
3
3
  src: string;
4
4
  bMarks: number[];
@@ -8,4 +8,3 @@ export default interface IState {
8
8
  line: number;
9
9
  push(action: string, tag: string, level: number): IToken;
10
10
  }
11
- //# sourceMappingURL=IState.d.ts.map
@@ -3,4 +3,3 @@
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  export {};
6
- //# sourceMappingURL=IState.js.map
@@ -4,4 +4,3 @@ export default interface IToken {
4
4
  map: number[];
5
5
  attrSet(name: string, value: string): void;
6
6
  }
7
- //# sourceMappingURL=IToken.d.ts.map
@@ -3,4 +3,3 @@
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  export {};
6
- //# sourceMappingURL=IToken.js.map
@@ -1,4 +1,3 @@
1
- import IState from "./IState";
1
+ import IState from './IState';
2
2
  type TRuleFunction = (state: IState, startLine: number, endLine: number, silent: boolean) => boolean;
3
3
  export default TRuleFunction;
4
- //# sourceMappingURL=TRuleFunction.d.ts.map
@@ -3,4 +3,3 @@
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  export {};
6
- //# sourceMappingURL=TRuleFunction.js.map
@@ -1,4 +1,3 @@
1
- import * as MarkdownIt from "markdown-it";
2
- import TRuleFunction from "../interfaces/markdown-it/TRuleFunction";
1
+ import * as MarkdownIt from 'markdown-it';
2
+ import TRuleFunction from '../interfaces/markdown-it/TRuleFunction';
3
3
  export default function gridTableRule(md: MarkdownIt): TRuleFunction;
4
- //# sourceMappingURL=gridtable.d.ts.map
@@ -2,16 +2,16 @@
2
2
  * Copyright (c) Bas Verweij. All rights reserved.
3
3
  * Licensed under the MIT License. See LICENSE in the project root for license information.
4
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";
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
8
  export default function gridTableRule(md) {
9
9
  return function (state, startLine, endLine, silent) {
10
- if (getCharCodeAtStartOfLine(state, startLine) !== 0x2B) {
10
+ if (getCharCodeAtStartOfLine(state, startLine) !== 0x2b) {
11
11
  // line does not start with a '+'
12
12
  return false;
13
13
  }
14
- let parseResult = parseTable(state, startLine, endLine);
14
+ const parseResult = parseTable(state, startLine, endLine);
15
15
  if (!parseResult.Success) {
16
16
  return false;
17
17
  }
@@ -23,4 +23,3 @@ export default function gridTableRule(md) {
23
23
  return true;
24
24
  };
25
25
  }
26
- //# sourceMappingURL=gridtable.js.map
@@ -0,0 +1,15 @@
1
+ import gridTableRulePlugin from './gridtables';
2
+ export { gridTableRulePlugin };
3
+ import mermaidPlugin from './mermaid';
4
+ export { mermaidPlugin };
5
+ export * from './callouts';
6
+ export * from './cites';
7
+ export * from './decorator';
8
+ export * from './divs';
9
+ export * from './figure-divs';
10
+ export * from './figures';
11
+ export * from './math';
12
+ export * from './shortcodes';
13
+ export * from './spans';
14
+ export * from './table-captions';
15
+ export * from './yaml';
@@ -0,0 +1,21 @@
1
+ /*
2
+ * index.ts
3
+ *
4
+ * Copyright (C) 2020-2023 Posit Software, PBC
5
+ *
6
+ */
7
+ import gridTableRulePlugin from './gridtables';
8
+ export { gridTableRulePlugin };
9
+ import mermaidPlugin from './mermaid';
10
+ export { mermaidPlugin };
11
+ export * from './callouts';
12
+ export * from './cites';
13
+ export * from './decorator';
14
+ export * from './divs';
15
+ export * from './figure-divs';
16
+ export * from './figures';
17
+ export * from './math';
18
+ export * from './shortcodes';
19
+ export * from './spans';
20
+ export * from './table-captions';
21
+ export * from './yaml';
@@ -1,5 +1,6 @@
1
- import type MarkdownIt from "markdown-it";
1
+ import type MarkdownIt from 'markdown-it';
2
2
  export declare const kTokMathBlock = "math_block";
3
3
  export declare const kTokMathInline = "math_inline";
4
- export declare function mathjaxPlugin(md: MarkdownIt): void;
5
- //# sourceMappingURL=math.d.ts.map
4
+ export declare function mathjaxPlugin(md: MarkdownIt, options?: {
5
+ enableInlines?: boolean;
6
+ }): void;
@@ -4,8 +4,8 @@
4
4
  * Copyright (C) 2020-2023 Posit Software, PBC
5
5
  *
6
6
  */
7
- export const kTokMathBlock = "math_block";
8
- export const kTokMathInline = "math_inline";
7
+ export const kTokMathBlock = 'math_block';
8
+ export const kTokMathInline = 'math_inline';
9
9
  function renderMath(content, convertOptions) {
10
10
  if (convertOptions.display) {
11
11
  return `<div class='quarto-display-math'>\\[${content}\\]</div>`;
@@ -33,17 +33,17 @@ function isValidDelim(state, pos) {
33
33
  }
34
34
  return {
35
35
  can_open: can_open,
36
- can_close: can_close,
36
+ can_close: can_close
37
37
  };
38
38
  }
39
39
  function math_inline(state, silent) {
40
- if (state.src[state.pos] !== "$") {
40
+ if (state.src[state.pos] !== '$') {
41
41
  return false;
42
42
  }
43
43
  let res = isValidDelim(state, state.pos);
44
44
  if (!res.can_open) {
45
45
  if (!silent) {
46
- state.pending += "$";
46
+ state.pending += '$';
47
47
  }
48
48
  state.pos += 1;
49
49
  return true;
@@ -54,15 +54,15 @@ function math_inline(state, silent) {
54
54
  // we have found an opening delimieter already.
55
55
  const start = state.pos + 1;
56
56
  let match = start;
57
- while ((match = state.src.indexOf("$", match)) !== -1) {
57
+ while ((match = state.src.indexOf('$', match)) !== -1) {
58
58
  // Found potential $, look for escapes, pos will point to
59
59
  // first non escape when complete
60
60
  let pos = match - 1;
61
- while (state.src[pos] === "\\") {
61
+ while (state.src[pos] === '\\') {
62
62
  pos -= 1;
63
63
  }
64
64
  // Even number of escapes, potential closing delimiter found
65
- if ((match - pos) % 2 == 1) {
65
+ if ((match - pos) % 2 === 1) {
66
66
  break;
67
67
  }
68
68
  match += 1;
@@ -70,7 +70,7 @@ function math_inline(state, silent) {
70
70
  // No closing delimter found. Consume $ and continue.
71
71
  if (match === -1) {
72
72
  if (!silent) {
73
- state.pending += "$";
73
+ state.pending += '$';
74
74
  }
75
75
  state.pos = start;
76
76
  return true;
@@ -78,7 +78,7 @@ function math_inline(state, silent) {
78
78
  // Check if we have empty content, ie: $$. Do not parse.
79
79
  if (match - start === 0) {
80
80
  if (!silent) {
81
- state.pending += "$$";
81
+ state.pending += '$$';
82
82
  }
83
83
  state.pos = start + 1;
84
84
  return true;
@@ -87,14 +87,14 @@ function math_inline(state, silent) {
87
87
  res = isValidDelim(state, match);
88
88
  if (!res.can_close) {
89
89
  if (!silent) {
90
- state.pending += "$";
90
+ state.pending += '$';
91
91
  }
92
92
  state.pos = start;
93
93
  return true;
94
94
  }
95
95
  if (!silent) {
96
- const token = state.push("math_inline", "math", 0);
97
- token.markup = "$";
96
+ const token = state.push('math_inline', 'math', 0);
97
+ token.markup = '$';
98
98
  token.content = state.src.slice(start, match);
99
99
  }
100
100
  state.pos = match + 1;
@@ -102,11 +102,11 @@ function math_inline(state, silent) {
102
102
  }
103
103
  function math_block(state, start, end, silent) {
104
104
  let next, lastPos;
105
- let found = false, pos = state.bMarks[start] + state.tShift[start], max = state.eMarks[start], lastLine = "";
105
+ let found = false, pos = state.bMarks[start] + state.tShift[start], max = state.eMarks[start], lastLine = '';
106
106
  if (pos + 2 > max) {
107
107
  return false;
108
108
  }
109
- if (state.src.slice(pos, pos + 2) !== "$$") {
109
+ if (state.src.slice(pos, pos + 2) !== '$$') {
110
110
  return false;
111
111
  }
112
112
  pos += 2;
@@ -114,7 +114,7 @@ function math_block(state, start, end, silent) {
114
114
  if (silent) {
115
115
  return true;
116
116
  }
117
- if (firstLine.trim().slice(-2) === "$$") {
117
+ if (firstLine.trim().slice(-2) === '$$') {
118
118
  // Single line expression
119
119
  firstLine = firstLine.trim().slice(0, -2);
120
120
  found = true;
@@ -134,44 +134,46 @@ function math_block(state, start, end, silent) {
134
134
  const line = state.src.slice(pos, max).trim();
135
135
  const match = line.match(/^\$\$\s*(\{.*\})?\s*$/);
136
136
  if (match) {
137
- lastPos = state.src.slice(0, max).lastIndexOf("$$");
137
+ lastPos = state.src.slice(0, max).lastIndexOf('$$');
138
138
  lastLine = state.src.slice(pos, lastPos);
139
139
  attrStr = match[1];
140
140
  found = true;
141
141
  }
142
142
  }
143
143
  state.line = next + 1;
144
- const token = state.push(kTokMathBlock, "math", 0);
144
+ const token = state.push(kTokMathBlock, 'math', 0);
145
145
  token.block = true;
146
146
  if (attrStr) {
147
147
  token.info = attrStr;
148
148
  }
149
149
  token.content =
150
- (firstLine && firstLine.trim() ? firstLine + "\n" : "") +
150
+ (firstLine && firstLine.trim() ? firstLine + '\n' : '') +
151
151
  state.getLines(start + 1, next, state.tShift[start], true) +
152
- (lastLine && lastLine.trim() ? lastLine : "");
152
+ (lastLine && lastLine.trim() ? lastLine : '');
153
153
  token.map = [start, state.line];
154
- token.markup = "$$";
154
+ token.markup = '$$';
155
155
  return true;
156
156
  }
157
- export function mathjaxPlugin(md) {
157
+ export function mathjaxPlugin(md, options) {
158
158
  // Default options
159
+ options = options || {};
160
+ const enableInlines = options.enableInlines !== undefined ? options.enableInlines : true;
159
161
  const convertOptions = {
160
162
  display: false
161
163
  };
162
164
  // set MathJax as the renderer for markdown-it-simplemath
163
- md.inline.ruler.after("escape", kTokMathInline, math_inline);
164
- md.block.ruler.after("blockquote", kTokMathBlock, math_block, {
165
- alt: ["paragraph", "reference", "blockquote", "list"],
165
+ md.inline.ruler.after('escape', kTokMathInline, math_inline);
166
+ md.block.ruler.after('blockquote', kTokMathBlock, math_block, {
167
+ alt: ['paragraph', 'reference', 'blockquote', 'list']
166
168
  });
167
- md.renderer.rules.math_inline = function (tokens, idx) {
168
- convertOptions.display = false;
169
- return renderMath(tokens[idx].content, convertOptions);
170
- };
169
+ if (enableInlines) {
170
+ md.renderer.rules.math_inline = function (tokens, idx) {
171
+ convertOptions.display = false;
172
+ return renderMath(tokens[idx].content, convertOptions);
173
+ };
174
+ }
171
175
  md.renderer.rules.math_block = function (tokens, idx) {
172
176
  convertOptions.display = true;
173
177
  return renderMath(tokens[idx].content, convertOptions);
174
178
  };
175
179
  }
176
- ;
177
- //# sourceMappingURL=math.js.map
@@ -1,5 +1,4 @@
1
- import MarkdownIt from "markdown-it";
1
+ import MarkdownIt from 'markdown-it';
2
2
  export default function mermaidPlugin(md: MarkdownIt, options: {
3
3
  dark?: boolean;
4
4
  }): void;
5
- //# sourceMappingURL=index.d.ts.map
@@ -1,21 +1,24 @@
1
- import Mermaid from "mermaid";
1
+ import Mermaid from 'mermaid';
2
2
  export default function mermaidPlugin(md, options) {
3
- const kLang = "mermaid";
4
- const kContainer = "quarto-mermaid";
3
+ const kLang = 'mermaid';
4
+ const kContainer = 'quarto-mermaid';
5
5
  Mermaid.initialize({
6
- securityLevel: "loose",
7
- theme: options.dark ? "dark" : "default",
8
- ...options,
6
+ securityLevel: 'loose',
7
+ theme: options.dark ? 'dark' : 'default',
8
+ ...options
9
9
  });
10
10
  const defaultFenceRenderer = md.renderer.rules.fence;
11
11
  // Render custom code types as SVGs, letting the fence parser do all the heavy lifting.
12
12
  function mermaidFenceRenderer(tokens, idx, options, env, slf) {
13
13
  const token = tokens[idx];
14
- if (token.info === kLang || (token.attrs !== null && token.attrs.length === 1 && token.attrs[0][0] === kLang)) {
15
- let imageHTML = "";
14
+ if (token.info === kLang ||
15
+ (token.attrs !== null &&
16
+ token.attrs.length === 1 &&
17
+ token.attrs[0][0] === kLang)) {
18
+ let imageHTML = '';
16
19
  const imageAttrs = [];
17
20
  // Create element to render into
18
- const element = document.createElement("div");
21
+ const element = document.createElement('div');
19
22
  document.body.appendChild(element);
20
23
  // Render with Mermaid
21
24
  try {
@@ -24,8 +27,8 @@ export default function mermaidPlugin(md, options) {
24
27
  const mermaidEl = document.getElementById(kContainer);
25
28
  if (mermaidEl !== null) {
26
29
  imageAttrs.push([
27
- "style",
28
- `max-width:${mermaidEl.style.maxWidth};max-height:${mermaidEl.style.maxHeight}`,
30
+ 'style',
31
+ `max-width:${mermaidEl.style.maxWidth};max-height:${mermaidEl.style.maxHeight}`
29
32
  ]);
30
33
  }
31
34
  // Store HTML
@@ -39,7 +42,10 @@ export default function mermaidPlugin(md, options) {
39
42
  element.remove();
40
43
  }
41
44
  // Store encoded image data
42
- imageAttrs.push(["src", `data:image/svg+xml,${encodeURIComponent(imageHTML)}`]);
45
+ imageAttrs.push([
46
+ 'src',
47
+ `data:image/svg+xml,${encodeURIComponent(imageHTML)}`
48
+ ]);
43
49
  return `<img ${slf.renderAttrs({ attrs: imageAttrs })}>`;
44
50
  }
45
51
  else {
@@ -47,9 +53,8 @@ export default function mermaidPlugin(md, options) {
47
53
  return defaultFenceRenderer(tokens, idx, options, env, slf);
48
54
  }
49
55
  // Missing fence renderer!
50
- return "";
56
+ return '';
51
57
  }
52
58
  }
53
59
  md.renderer.rules.fence = mermaidFenceRenderer;
54
60
  }
55
- //# sourceMappingURL=index.js.map