@quarto/jupyterlab-quarto 0.1.41 → 0.1.44
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 +2 -3
- package/package.json +1 -1
- package/style/base.css +4 -0
- package/lib/__tests__/index.spec.d.ts +0 -6
- package/lib/__tests__/index.spec.js +0 -60
- package/lib/__tests__/index.spec.js.map +0 -1
- package/lib/__tests__/myextension.spec.d.ts +0 -6
- package/lib/__tests__/myextension.spec.js +0 -10
- package/lib/__tests__/myextension.spec.js.map +0 -1
- package/lib/ast/ast.d.ts +0 -3
- package/lib/ast/ast.js +0 -38
- package/lib/ast/ast.js.map +0 -1
- package/lib/const.d.ts +0 -5
- package/lib/const.js +0 -11
- package/lib/const.js.map +0 -1
- package/lib/hooks/codemirror.d.ts +0 -4
- package/lib/hooks/codemirror.js +0 -51
- package/lib/hooks/codemirror.js.map +0 -1
- package/lib/index.d.ts +0 -6
- package/lib/index.js +0 -59
- package/lib/index.js.map +0 -1
- package/lib/manager.d.ts +0 -8
- package/lib/manager.js +0 -116
- package/lib/manager.js.map +0 -1
- package/lib/plugins/callouts.d.ts +0 -3
- package/lib/plugins/callouts.js +0 -208
- package/lib/plugins/callouts.js.map +0 -1
- package/lib/plugins/cites.d.ts +0 -3
- package/lib/plugins/cites.js +0 -147
- package/lib/plugins/cites.js.map +0 -1
- package/lib/plugins/decorator.d.ts +0 -3
- package/lib/plugins/decorator.js +0 -58
- package/lib/plugins/decorator.js.map +0 -1
- package/lib/plugins/divs.d.ts +0 -6
- package/lib/plugins/divs.js +0 -99
- package/lib/plugins/divs.js.map +0 -1
- package/lib/plugins/figure-divs.d.ts +0 -3
- package/lib/plugins/figure-divs.js +0 -52
- package/lib/plugins/figure-divs.js.map +0 -1
- package/lib/plugins/figures.d.ts +0 -17
- package/lib/plugins/figures.js +0 -98
- package/lib/plugins/figures.js.map +0 -1
- package/lib/plugins/gridtables/common/gridtables/GetCells.d.ts +0 -8
- package/lib/plugins/gridtables/common/gridtables/GetCells.js +0 -44
- package/lib/plugins/gridtables/common/gridtables/GetCells.js.map +0 -1
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.d.ts +0 -8
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js +0 -26
- package/lib/plugins/gridtables/common/gridtables/GetColumnWidths.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.d.ts +0 -8
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js +0 -12
- package/lib/plugins/gridtables/common/markdown-it/ColumnAlignments.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.d.ts +0 -5
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.js +0 -66
- package/lib/plugins/gridtables/common/markdown-it/EmitTable.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.d.ts +0 -9
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js +0 -18
- package/lib/plugins/gridtables/common/markdown-it/GetCharCodeAtStartOfLine.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/GetLine.d.ts +0 -3
- package/lib/plugins/gridtables/common/markdown-it/GetLine.js +0 -9
- package/lib/plugins/gridtables/common/markdown-it/GetLine.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.d.ts +0 -4
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.js +0 -161
- package/lib/plugins/gridtables/common/markdown-it/ParseTable.js.map +0 -1
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.d.ts +0 -13
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js +0 -17
- package/lib/plugins/gridtables/common/markdown-it/ParseTableResult.js.map +0 -1
- package/lib/plugins/gridtables/index.d.ts +0 -2
- package/lib/plugins/gridtables/index.js +0 -8
- package/lib/plugins/gridtables/index.js.map +0 -1
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.d.ts +0 -11
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.js +0 -5
- package/lib/plugins/gridtables/interfaces/markdown-it/IState.js.map +0 -1
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.d.ts +0 -7
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js +0 -5
- package/lib/plugins/gridtables/interfaces/markdown-it/IToken.js.map +0 -1
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.d.ts +0 -4
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js +0 -5
- package/lib/plugins/gridtables/interfaces/markdown-it/TRuleFunction.js.map +0 -1
- package/lib/plugins/gridtables/rules/gridtable.d.ts +0 -4
- package/lib/plugins/gridtables/rules/gridtable.js +0 -25
- package/lib/plugins/gridtables/rules/gridtable.js.map +0 -1
- package/lib/plugins/math.d.ts +0 -5
- package/lib/plugins/math.js +0 -174
- package/lib/plugins/math.js.map +0 -1
- package/lib/plugins/mermaid/index.d.ts +0 -3
- package/lib/plugins/mermaid/index.js +0 -53
- package/lib/plugins/mermaid/index.js.map +0 -1
- package/lib/plugins/shortcodes.d.ts +0 -4
- package/lib/plugins/shortcodes.js +0 -32
- package/lib/plugins/shortcodes.js.map +0 -1
- package/lib/plugins/spans.d.ts +0 -3
- package/lib/plugins/spans.js +0 -38
- package/lib/plugins/spans.js.map +0 -1
- package/lib/plugins/table-captions.d.ts +0 -3
- package/lib/plugins/table-captions.js +0 -74
- package/lib/plugins/table-captions.js.map +0 -1
- package/lib/plugins/yaml.d.ts +0 -3
- package/lib/plugins/yaml.js +0 -309
- package/lib/plugins/yaml.js.map +0 -1
- package/lib/providers/attrs.d.ts +0 -2
- package/lib/providers/attrs.js +0 -15
- package/lib/providers/attrs.js.map +0 -1
- package/lib/providers/callouts.d.ts +0 -2
- package/lib/providers/callouts.js +0 -15
- package/lib/providers/callouts.js.map +0 -1
- package/lib/providers/cites.d.ts +0 -2
- package/lib/providers/cites.js +0 -15
- package/lib/providers/cites.js.map +0 -1
- package/lib/providers/decorator.d.ts +0 -2
- package/lib/providers/decorator.js +0 -15
- package/lib/providers/decorator.js.map +0 -1
- package/lib/providers/deflist.d.ts +0 -2
- package/lib/providers/deflist.js +0 -15
- package/lib/providers/deflist.js.map +0 -1
- package/lib/providers/divs.d.ts +0 -2
- package/lib/providers/divs.js +0 -27
- package/lib/providers/divs.js.map +0 -1
- package/lib/providers/figure-divs.d.ts +0 -2
- package/lib/providers/figure-divs.js +0 -15
- package/lib/providers/figure-divs.js.map +0 -1
- package/lib/providers/figures.d.ts +0 -2
- package/lib/providers/figures.js +0 -15
- package/lib/providers/figures.js.map +0 -1
- package/lib/providers/footnotes.d.ts +0 -2
- package/lib/providers/footnotes.js +0 -15
- package/lib/providers/footnotes.js.map +0 -1
- package/lib/providers/gridtables.d.ts +0 -2
- package/lib/providers/gridtables.js +0 -15
- package/lib/providers/gridtables.js.map +0 -1
- package/lib/providers/math.d.ts +0 -2
- package/lib/providers/math.js +0 -104
- package/lib/providers/math.js.map +0 -1
- package/lib/providers/mermaid.d.ts +0 -2
- package/lib/providers/mermaid.js +0 -13
- package/lib/providers/mermaid.js.map +0 -1
- package/lib/providers/provider.d.ts +0 -4
- package/lib/providers/provider.js +0 -12
- package/lib/providers/provider.js.map +0 -1
- package/lib/providers/shortcodes.d.ts +0 -2
- package/lib/providers/shortcodes.js +0 -15
- package/lib/providers/shortcodes.js.map +0 -1
- package/lib/providers/spans.d.ts +0 -2
- package/lib/providers/spans.js +0 -15
- package/lib/providers/spans.js.map +0 -1
- package/lib/providers/sub.d.ts +0 -2
- package/lib/providers/sub.js +0 -15
- package/lib/providers/sub.js.map +0 -1
- package/lib/providers/sup.d.ts +0 -2
- package/lib/providers/sup.js +0 -15
- package/lib/providers/sup.js.map +0 -1
- package/lib/providers/table-captions.d.ts +0 -2
- package/lib/providers/table-captions.js +0 -15
- package/lib/providers/table-captions.js.map +0 -1
- package/lib/providers/tasklists.d.ts +0 -2
- package/lib/providers/tasklists.js +0 -15
- package/lib/providers/tasklists.js.map +0 -1
- package/lib/providers/yaml.d.ts +0 -2
- package/lib/providers/yaml.js +0 -15
- package/lib/providers/yaml.js.map +0 -1
- package/lib/types.d.ts +0 -44
- package/lib/types.js +0 -1
- package/lib/types.js.map +0 -1
- package/lib/utils/html.d.ts +0 -12
- package/lib/utils/html.js +0 -45
- package/lib/utils/html.js.map +0 -1
- package/lib/utils/markdownit.d.ts +0 -16
- package/lib/utils/markdownit.js +0 -44
- package/lib/utils/markdownit.js.map +0 -1
- package/lib/utils/tok.d.ts +0 -8
- package/lib/utils/tok.js +0 -13
- package/lib/utils/tok.js.map +0 -1
- package/lib/widgets.d.ts +0 -15
- package/lib/widgets.js +0 -57
- package/lib/widgets.js.map +0 -1
package/README.md
CHANGED
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
[Quarto](https://www.quarto.org) is an open source project that combines Jupyter notebooks with flexible options to use a single source document to produce high-quality articles, reports, presentations, websites, and books in HTML, PDF, MS Word, ePub, and more. Quarto supports a wide variety of useful new features useful in technical documents, including support for LaTeX equations, citations, cross-references, figure panels, callouts, advanced page layout, and more.
|
|
4
4
|
|
|
5
5
|
The JupyterLab Quarto extension allows JupyterLab to render notebooks which include Quarto markdown content.
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
<br/><br/>
|
|
8
7
|
<p align="center">
|
|
9
|
-
<img src="https://user-images.githubusercontent.com/261654/
|
|
8
|
+
<img src="https://user-images.githubusercontent.com/261654/230087634-d5027ebc-8508-43b4-81c9-c4b7d6cfa738.png" width="60%">
|
|
10
9
|
</p>
|
|
11
10
|
|
|
12
11
|
## Requirements
|
package/package.json
CHANGED
package/style/base.css
CHANGED
|
@@ -143,6 +143,10 @@
|
|
|
143
143
|
font-weight: 600;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
+
body[data-jp-theme-light="false"] .callout-title-container {
|
|
147
|
+
color: var(--jp-input-background);
|
|
148
|
+
}
|
|
149
|
+
|
|
146
150
|
.callout.callout-style-default div.callout-title {
|
|
147
151
|
border-bottom: none;
|
|
148
152
|
font-weight: 600;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @jest-environment jsdom
|
|
3
|
-
* @jest-environment-options {"url": "https://jestjs.io/"}
|
|
4
|
-
*/
|
|
5
|
-
import { describe, test, expect } from '@jest/globals';
|
|
6
|
-
import MarkdownIt from 'markdown-it';
|
|
7
|
-
import sub from 'markdown-it-sub';
|
|
8
|
-
import sup from 'markdown-it-sup';
|
|
9
|
-
import deflist from 'markdown-it-deflist';
|
|
10
|
-
import figures from 'markdown-it-implicit-figures';
|
|
11
|
-
import footnotes from 'markdown-it-footnote';
|
|
12
|
-
import tasklists from 'markdown-it-task-lists';
|
|
13
|
-
import mermaid from '../plugins/mermaid';
|
|
14
|
-
import attrs from 'markdown-it-attrs';
|
|
15
|
-
import gridtables from '../plugins/gridtables';
|
|
16
|
-
import { citationPlugin as cites } from '../plugins/cites';
|
|
17
|
-
import { calloutPlugin as callouts } from '../plugins/callouts';
|
|
18
|
-
import { divPlugin as divs } from '../plugins/divs';
|
|
19
|
-
import { shortcodePlugin as shortcodes } from '../plugins/shortcodes';
|
|
20
|
-
// Provides resolved MarkdownIt options using the passed in options, the plugin
|
|
21
|
-
// options, and default options.
|
|
22
|
-
const resolveOptions = (options) => {
|
|
23
|
-
// Build options table
|
|
24
|
-
let allOptions = {
|
|
25
|
-
html: true,
|
|
26
|
-
linkify: true,
|
|
27
|
-
typographer: true,
|
|
28
|
-
};
|
|
29
|
-
return {
|
|
30
|
-
...allOptions,
|
|
31
|
-
...options
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
const makeMd = () => {
|
|
35
|
-
// no current plugin uses this parameter
|
|
36
|
-
const options = resolveOptions({});
|
|
37
|
-
let md = new MarkdownIt('default', options)
|
|
38
|
-
.use(sub)
|
|
39
|
-
.use(sup)
|
|
40
|
-
.use(deflist)
|
|
41
|
-
.use(figures, { figcaption: true })
|
|
42
|
-
.use(footnotes)
|
|
43
|
-
.use(tasklists)
|
|
44
|
-
.use(cites)
|
|
45
|
-
.use(mermaid)
|
|
46
|
-
.use(callouts)
|
|
47
|
-
.use(attrs)
|
|
48
|
-
.use(divs)
|
|
49
|
-
.use(gridtables)
|
|
50
|
-
.use(shortcodes);
|
|
51
|
-
return md;
|
|
52
|
-
};
|
|
53
|
-
describe('basic parse', () => {
|
|
54
|
-
test('simple shortcode parser', () => {
|
|
55
|
-
const str = '{{< shortcode >}}';
|
|
56
|
-
const result = '<p><span class="shortcode">{{< shortcode >}}</span></p>\n';
|
|
57
|
-
const md = makeMd();
|
|
58
|
-
expect(md.render(str)).toBe(result);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../src/__tests__/index.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AACrD,OAAO,UAAuB,MAAM,aAAa,CAAC;AAGlD,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAClC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,OAAO,MAAM,8BAA8B,CAAC;AACnD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,cAAc,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEtE,+EAA+E;AAC/E,gCAAgC;AAChC,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC1C,sBAAsB;IACtB,IAAI,UAAU,GAAY;QACxB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,IAAI;KAClB,CAAC;IACF,OAAO;QACL,GAAG,UAAU;QACb,GAAG,OAAO;KACX,CAAC;AACJ,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,wCAAwC;IACxC,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IAEnC,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;SACxC,GAAG,CAAC,GAAG,CAAC;SACR,GAAG,CAAC,GAAG,CAAC;SACR,GAAG,CAAC,OAAO,CAAC;SACZ,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;SAClC,GAAG,CAAC,SAAS,CAAC;SACd,GAAG,CAAC,SAAS,CAAC;SACd,GAAG,CAAC,KAAK,CAAC;SACV,GAAG,CAAC,OAAO,CAAC;SACZ,GAAG,CAAC,QAAQ,CAAC;SACb,GAAG,CAAC,KAAK,CAAC;SACV,GAAG,CAAC,IAAI,CAAC;SACT,GAAG,CAAC,UAAU,CAAC;SACf,GAAG,CAAC,UAAU,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,mBAAmB,CAAC;QAChC,MAAM,MAAM,GAAG,iEAAiE,CAAA;QAChF,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"myextension.spec.js","sourceRoot":"","sources":["../../src/__tests__/myextension.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAErD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC1B,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/ast/ast.d.ts
DELETED
package/lib/ast/ast.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
export const toAst = (toks) => {
|
|
2
|
-
let pos = 0;
|
|
3
|
-
const inner = () => {
|
|
4
|
-
if (pos >= toks.length)
|
|
5
|
-
return;
|
|
6
|
-
const tok = toks[pos];
|
|
7
|
-
if (tok.type.endsWith('_open')) {
|
|
8
|
-
++pos;
|
|
9
|
-
const children = [];
|
|
10
|
-
while (toks[pos].type !== tok.type.replace('_open', '_close')) {
|
|
11
|
-
children.push(inner());
|
|
12
|
-
}
|
|
13
|
-
++pos;
|
|
14
|
-
return {
|
|
15
|
-
...tok,
|
|
16
|
-
type: tok.type.replace('_open', ''),
|
|
17
|
-
children: children
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
if (tok.type === 'inline' && tok.children) {
|
|
21
|
-
const children = toAst(tok.children);
|
|
22
|
-
++pos;
|
|
23
|
-
return {
|
|
24
|
-
...tok,
|
|
25
|
-
children
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
++pos;
|
|
29
|
-
return tok;
|
|
30
|
-
};
|
|
31
|
-
const result = [];
|
|
32
|
-
while (pos < toks.length) {
|
|
33
|
-
const node = inner();
|
|
34
|
-
if (node)
|
|
35
|
-
result.push(node);
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
};
|
package/lib/ast/ast.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/ast/ast.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE;IACnC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,MAAM,KAAK,GAAG,GAAG,EAAE;QACf,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YAC5B,EAAE,GAAG,CAAC;YACN,MAAM,QAAQ,GAAU,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;gBAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aAC1B;YACD,EAAE,GAAG,CAAC;YACN,OAAO;gBACH,GAAG,GAAG;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnC,QAAQ,EAAE,QAAQ;aACZ,CAAC;SACd;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE;YACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,EAAE,GAAG,CAAC;YACN,OAAO;gBACH,GAAG,GAAG;gBACN,QAAQ;aACF,CAAC;SACd;QACD,EAAE,GAAG,CAAC;QACN,OAAO,GAAG,CAAC;IACf,CAAC,CAAA;IACD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;QACtB,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;QACrB,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;IACD,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC"}
|
package/lib/const.d.ts
DELETED
package/lib/const.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* const.ts
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2020-2023 Posit Software, PBC
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Token } from '@lumino/coreutils';
|
|
8
|
-
// The namespace for this project
|
|
9
|
-
export const kPackageNamespace = 'jupyterlab-quarto';
|
|
10
|
-
// The MarkdownIt manager token.
|
|
11
|
-
export const kMarkdownItMgr = new Token(kPackageNamespace);
|
package/lib/const.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AACF,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,iCAAiC;AACjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,gCAAgC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,KAAK,CAAoB,iBAAiB,CAAC,CAAC"}
|
package/lib/hooks/codemirror.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* hooks.ts
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2020-2023 Posit Software, PBC
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { Mode } from '@jupyterlab/codemirror';
|
|
8
|
-
export function codeMirrorPreloadHook() {
|
|
9
|
-
// TODO: Properly deal with {r}, {{r}} style expressions
|
|
10
|
-
const fenced = new RegExp(/^`{3}([^\s]+)/g);
|
|
11
|
-
return {
|
|
12
|
-
run: async (source) => {
|
|
13
|
-
const newModes = new Map();
|
|
14
|
-
let match;
|
|
15
|
-
while ((match = fenced.exec(source))) {
|
|
16
|
-
if (!newModes.has(match[1])) {
|
|
17
|
-
newModes.set(match[1], Mode.ensure(match[1]));
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
if (newModes.size) {
|
|
21
|
-
Promise.all(newModes.values()).catch(console.warn);
|
|
22
|
-
}
|
|
23
|
-
return source;
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export const codeMirrorHighlight = (str, lang) => {
|
|
28
|
-
if (!lang) {
|
|
29
|
-
return ''; // use external default escaping
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
const spec = Mode.findBest(lang);
|
|
33
|
-
if (!spec) {
|
|
34
|
-
console.warn(`No CodeMirror mode: ${lang}`);
|
|
35
|
-
return '';
|
|
36
|
-
}
|
|
37
|
-
const el = document.createElement('div');
|
|
38
|
-
try {
|
|
39
|
-
Mode.run(str, spec.mime, el);
|
|
40
|
-
return el.innerHTML;
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
console.warn(`Failed to highlight ${lang} code`, err);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
console.warn(`No CodeMirror mode: ${lang}`);
|
|
48
|
-
console.warn(`Require CodeMirror mode error: ${err}`);
|
|
49
|
-
}
|
|
50
|
-
return '';
|
|
51
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codemirror.js","sourceRoot":"","sources":["../../src/hooks/codemirror.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAGF,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,MAAM,UAAU,qBAAqB;IACnC,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;YACjD,IAAI,KAA8B,CAAC;YACnC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE;gBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3B,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/C;aACF;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;aACpD;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;IAC/D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC,CAAC,gCAAgC;KAC5C;IACD,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;SACX;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI;YACF,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC;SACvD;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAC;KACvD;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
|
package/lib/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application';
|
|
2
|
-
import { MarkdownItManager } from './types';
|
|
3
|
-
import '../style/index.css';
|
|
4
|
-
declare const _default: (JupyterFrontEndPlugin<MarkdownItManager, JupyterFrontEnd.IShell, "desktop" | "mobile"> | JupyterFrontEndPlugin<void, JupyterFrontEnd.IShell, "desktop" | "mobile">)[];
|
|
5
|
-
export default _default;
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { mermaid } from './providers/mermaid';
|
|
2
|
-
import { kMarkdownItMgr, kPackageNamespace } from './const';
|
|
3
|
-
import { footnotes } from './providers/footnotes';
|
|
4
|
-
import '../style/index.css';
|
|
5
|
-
import { markdownItManager } from './manager';
|
|
6
|
-
import { divs } from './providers/divs';
|
|
7
|
-
import { deflist } from './providers/deflist';
|
|
8
|
-
import { gridtables } from './providers/gridtables';
|
|
9
|
-
import { sub } from './providers/sub';
|
|
10
|
-
import { sup } from './providers/sup';
|
|
11
|
-
import { tasklists } from './providers/tasklists';
|
|
12
|
-
import { cites } from './providers/cites';
|
|
13
|
-
import { attrs } from './providers/attrs';
|
|
14
|
-
import { callouts } from './providers/callouts';
|
|
15
|
-
import { decorator } from './providers/decorator';
|
|
16
|
-
import { yaml } from './providers/yaml';
|
|
17
|
-
import { math } from './providers/math';
|
|
18
|
-
import { figures } from './providers/figures';
|
|
19
|
-
import { figureDivs } from './providers/figure-divs';
|
|
20
|
-
import { tableCaptions } from './providers/table-captions';
|
|
21
|
-
import { spans } from './providers/spans';
|
|
22
|
-
import { shortcodes } from './providers/shortcodes';
|
|
23
|
-
const plugin = {
|
|
24
|
-
id: `${kPackageNamespace}:plugin`,
|
|
25
|
-
autoStart: true,
|
|
26
|
-
provides: kMarkdownItMgr,
|
|
27
|
-
activate: (_app) => {
|
|
28
|
-
console.log('JupyterLab extension jupyterlab-quarto is activated!');
|
|
29
|
-
// Create a markdown rendering manager
|
|
30
|
-
return markdownItManager();
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
// Markdown It Extensions which provide base Pandoc behavior
|
|
34
|
-
const kPandocExtensions = [
|
|
35
|
-
footnotes,
|
|
36
|
-
spans,
|
|
37
|
-
attrs,
|
|
38
|
-
deflist,
|
|
39
|
-
figures,
|
|
40
|
-
gridtables,
|
|
41
|
-
sub,
|
|
42
|
-
sup,
|
|
43
|
-
tasklists,
|
|
44
|
-
divs,
|
|
45
|
-
math
|
|
46
|
-
];
|
|
47
|
-
// Markdown It Extensions which provide Quarto specific behavior
|
|
48
|
-
const kQuartoExtensions = [
|
|
49
|
-
figureDivs,
|
|
50
|
-
tableCaptions,
|
|
51
|
-
cites,
|
|
52
|
-
mermaid,
|
|
53
|
-
callouts,
|
|
54
|
-
decorator,
|
|
55
|
-
yaml,
|
|
56
|
-
shortcodes
|
|
57
|
-
];
|
|
58
|
-
// The extensions that should be enabled for Jupyter
|
|
59
|
-
export default [plugin, ...kPandocExtensions, ...kQuartoExtensions];
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,MAAM,GAA6C;IACvD,EAAE,EAAE,GAAG,iBAAiB,SAAS;IACjC,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,CAAC,IAAqB,EAAE,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QAEpE,uCAAuC;QACvC,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;CACF,CAAC;AAGF,4DAA4D;AAC5D,MAAM,iBAAiB,GAAG;IACxB,SAAS;IACT,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,GAAG;IACH,GAAG;IACH,SAAS;IACT,IAAI;IACJ,IAAI;CACL,CAAC;AAEF,gEAAgE;AAChE,MAAM,iBAAiB,GAAG;IACxB,UAAU;IACV,aAAa;IACb,KAAK;IACL,OAAO;IACP,QAAQ;IACR,SAAS;IACT,IAAI;IACJ,UAAU;CACX,CAAC;AAGF,oDAAoD;AACpD,eAAe,CAAC,MAAM,EAAE,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAE,CAAC"}
|
package/lib/manager.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Options } from 'markdown-it';
|
|
2
|
-
import { RenderedMarkdown } from './widgets';
|
|
3
|
-
import { MarkdownItPluginProvider, Renderer } from './types';
|
|
4
|
-
export declare function markdownItManager(): {
|
|
5
|
-
registerPlugin(provider: MarkdownItPluginProvider): void;
|
|
6
|
-
getRenderer(widget: RenderedMarkdown, options?: Options): Promise<Renderer>;
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=manager.d.ts.map
|
package/lib/manager.js
DELETED
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* manager.ts
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 2020-2023 Posit Software, PBC
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { markdownRendererFactory } from '@jupyterlab/rendermime';
|
|
8
|
-
import { CodeMirrorEditor } from '@jupyterlab/codemirror';
|
|
9
|
-
import MarkdownIt from 'markdown-it';
|
|
10
|
-
import { RenderedMarkdown } from './widgets';
|
|
11
|
-
import { codeMirrorHighlight, codeMirrorPreloadHook } from './hooks/codemirror';
|
|
12
|
-
// Provides resolved MarkdownIt options using the passed in options, the plugin
|
|
13
|
-
// options, and default options.
|
|
14
|
-
const resolveOptions = (widget, options, providers) => {
|
|
15
|
-
// Build options table
|
|
16
|
-
let allOptions = {
|
|
17
|
-
html: true,
|
|
18
|
-
linkify: true,
|
|
19
|
-
typographer: true,
|
|
20
|
-
langPrefix: `cm-s-${CodeMirrorEditor.defaultConfig.theme} language-`,
|
|
21
|
-
highlight: codeMirrorHighlight
|
|
22
|
-
};
|
|
23
|
-
for (const plugin of providers) {
|
|
24
|
-
if (plugin.options) {
|
|
25
|
-
try {
|
|
26
|
-
// Add options for this plugin
|
|
27
|
-
allOptions = { ...allOptions, ...plugin.options(widget) };
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
console.warn(`Failed to get options from markdown-it plugin ${plugin.id}`, err);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
...allOptions,
|
|
36
|
-
...options
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
export function markdownItManager() {
|
|
40
|
-
// The plugin providers
|
|
41
|
-
const pluginProviders = new Map();
|
|
42
|
-
// The IMarkdownItManager
|
|
43
|
-
const manager = {
|
|
44
|
-
registerPlugin(provider) {
|
|
45
|
-
pluginProviders.set(provider.id, provider);
|
|
46
|
-
},
|
|
47
|
-
async getRenderer(widget, options = {}) {
|
|
48
|
-
var _a, _b, _c, _d;
|
|
49
|
-
// Fetch the list of providers
|
|
50
|
-
const providers = [...pluginProviders.values()];
|
|
51
|
-
providers.sort(sortRanked);
|
|
52
|
-
// Create MarkdownIt instance
|
|
53
|
-
const allOptions = resolveOptions(widget, options, providers);
|
|
54
|
-
let md = new MarkdownIt('default', allOptions);
|
|
55
|
-
// Lifecycle hooks
|
|
56
|
-
const preParseHooks = [];
|
|
57
|
-
const postRenderHooks = [];
|
|
58
|
-
// add mode pre-loading hook if using default highlighter
|
|
59
|
-
if (codeMirrorHighlight === allOptions.highlight) {
|
|
60
|
-
preParseHooks.push(codeMirrorPreloadHook());
|
|
61
|
-
}
|
|
62
|
-
// Build MarkdownIt and load lifecycle hooks
|
|
63
|
-
for (const provider of providers) {
|
|
64
|
-
try {
|
|
65
|
-
// Load MarkdownIt plugin
|
|
66
|
-
const [plugin, ...pluginOptions] = await provider.plugin();
|
|
67
|
-
// Build MarkdownIt instance
|
|
68
|
-
md = md.use(plugin, ...pluginOptions);
|
|
69
|
-
// Build table of lifecycle hooks
|
|
70
|
-
if (((_a = provider.hooks) === null || _a === void 0 ? void 0 : _a.preParse) !== undefined) {
|
|
71
|
-
preParseHooks.push((_b = provider.hooks) === null || _b === void 0 ? void 0 : _b.preParse);
|
|
72
|
-
}
|
|
73
|
-
if (((_c = provider.hooks) === null || _c === void 0 ? void 0 : _c.postRender) !== undefined) {
|
|
74
|
-
postRenderHooks.push((_d = provider.hooks) === null || _d === void 0 ? void 0 : _d.postRender);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
catch (err) {
|
|
78
|
-
console.warn(`Failed to load/use markdown-it plugin ${provider.id}`, err);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// Sort hooks by rank
|
|
82
|
-
preParseHooks.sort(sortRanked);
|
|
83
|
-
postRenderHooks.sort(sortRanked);
|
|
84
|
-
return {
|
|
85
|
-
// Parse and render Markdown
|
|
86
|
-
render: (content) => {
|
|
87
|
-
return md.render(content);
|
|
88
|
-
},
|
|
89
|
-
// Run hooks serially
|
|
90
|
-
preParse: async (content) => {
|
|
91
|
-
for (const hook of preParseHooks) {
|
|
92
|
-
content = await hook.run(content);
|
|
93
|
-
}
|
|
94
|
-
return content;
|
|
95
|
-
},
|
|
96
|
-
// Run hooks serially
|
|
97
|
-
postRender: async (node) => {
|
|
98
|
-
for (const hook of postRenderHooks) {
|
|
99
|
-
await hook.run(node);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
// Register the Renderer
|
|
106
|
-
markdownRendererFactory.createRenderer = (options) => {
|
|
107
|
-
return new RenderedMarkdown(options, manager);
|
|
108
|
-
};
|
|
109
|
-
return manager;
|
|
110
|
-
}
|
|
111
|
-
// Sorts by rank, using 100 if no default is provided.
|
|
112
|
-
const kDefaultRank = 100;
|
|
113
|
-
const sortRanked = (left, right) => {
|
|
114
|
-
var _a, _b;
|
|
115
|
-
return ((_a = left.rank) !== null && _a !== void 0 ? _a : kDefaultRank) - ((_b = right.rank) !== null && _b !== void 0 ? _b : kDefaultRank);
|
|
116
|
-
};
|
package/lib/manager.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|