@jupyterlab/toc 6.6.0-alpha.5 → 6.6.0-beta.1
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/lib/factory.d.ts +8 -0
- package/lib/factory.js +9 -0
- package/lib/factory.js.map +1 -1
- package/lib/registry.d.ts +8 -0
- package/lib/registry.js +16 -0
- package/lib/registry.js.map +1 -1
- package/lib/tokens.d.ts +14 -0
- package/lib/tokens.js.map +1 -1
- package/lib/utils/markdown.js +6 -6
- package/lib/utils/markdown.js.map +1 -1
- package/package.json +11 -11
- package/src/factory.ts +11 -0
- package/src/registry.ts +18 -0
- package/src/tokens.ts +16 -0
- package/src/utils/markdown.ts +6 -6
package/lib/factory.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IWidgetTracker } from '@jupyterlab/apputils';
|
|
2
|
+
import type { ToolbarRegistry } from '@jupyterlab/apputils';
|
|
2
3
|
import type { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
3
4
|
import type { Widget } from '@lumino/widgets';
|
|
4
5
|
import type { TableOfContentsModel } from './model';
|
|
@@ -21,6 +22,13 @@ export declare abstract class TableOfContentsFactory<W extends IDocumentWidget,
|
|
|
21
22
|
* @returns boolean indicating a ToC can be generated
|
|
22
23
|
*/
|
|
23
24
|
isApplicable(widget: Widget): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Get additional toolbar items for the widget
|
|
27
|
+
*
|
|
28
|
+
* @param widget - widget
|
|
29
|
+
* @returns List of toolbar items
|
|
30
|
+
*/
|
|
31
|
+
getToolbarItems(widget: W): ToolbarRegistry.IToolbarItem[];
|
|
24
32
|
/**
|
|
25
33
|
* Create a new table of contents model for the widget
|
|
26
34
|
*
|
package/lib/factory.js
CHANGED
|
@@ -31,6 +31,15 @@ export class TableOfContentsFactory {
|
|
|
31
31
|
}
|
|
32
32
|
return true;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Get additional toolbar items for the widget
|
|
36
|
+
*
|
|
37
|
+
* @param widget - widget
|
|
38
|
+
* @returns List of toolbar items
|
|
39
|
+
*/
|
|
40
|
+
getToolbarItems(widget) {
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
34
43
|
/**
|
|
35
44
|
* Create a new table of contents model for the widget
|
|
36
45
|
*
|
package/lib/factory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMjE;;;;GAIG;AACH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAgB,sBAAsB;IAI1C;;;;OAIG;IACH,YAAsB,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,MAAS;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CACP,MAAS,EACT,aAAuC;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAErD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAE/B,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBAC7B,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc;YACpC,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QACH,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEzC,OAAO,CAAC,KAAK;aACV,IAAI,CAAC,GAAG,EAAE;YACT,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEL,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;YAC3B,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACnD,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;CAeF"}
|
package/lib/registry.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ToolbarRegistry } from '@jupyterlab/apputils';
|
|
1
2
|
import type { IDisposable } from '@lumino/disposable';
|
|
2
3
|
import type { Widget } from '@lumino/widgets';
|
|
3
4
|
import type { ITableOfContentsRegistry, TableOfContents } from './tokens';
|
|
@@ -17,6 +18,13 @@ export declare class TableOfContentsRegistry implements ITableOfContentsRegistry
|
|
|
17
18
|
* @returns Table of contents model
|
|
18
19
|
*/
|
|
19
20
|
getModel(widget: Widget, configuration?: TableOfContents.IConfig): TableOfContents.Model | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Get the toolbar items for a widget.
|
|
23
|
+
*
|
|
24
|
+
* @param widget - widget
|
|
25
|
+
* @returns List of toolbar items
|
|
26
|
+
*/
|
|
27
|
+
getToolbarItems(widget: Widget): ToolbarRegistry.IToolbarItem[] | undefined;
|
|
20
28
|
/**
|
|
21
29
|
* Adds a table of contents generator to the registry.
|
|
22
30
|
*
|
package/lib/registry.js
CHANGED
|
@@ -27,6 +27,22 @@ export class TableOfContentsRegistry {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the toolbar items for a widget.
|
|
32
|
+
*
|
|
33
|
+
* @param widget - widget
|
|
34
|
+
* @returns List of toolbar items
|
|
35
|
+
*/
|
|
36
|
+
getToolbarItems(widget) {
|
|
37
|
+
for (const generator of this._generators.values()) {
|
|
38
|
+
if (generator.isApplicable(widget)) {
|
|
39
|
+
if (generator.getToolbarItems) {
|
|
40
|
+
return generator.getToolbarItems(widget);
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
30
46
|
/**
|
|
31
47
|
* Adds a table of contents generator to the registry.
|
|
32
48
|
*
|
package/lib/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QAsDU,gBAAW,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC1D,eAAU,GAAG,CAAC,CAAC;IACzB,CAAC;IAvDC;;;;;;;;;;OAUG;IACH,QAAQ,CACN,MAAc,EACd,aAAuC;QAEvC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,MAAc;QAC5B,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;oBAC9B,OAAO,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,SAAmC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAEpC,OAAO,IAAI,kBAAkB,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;CAIF"}
|
package/lib/tokens.d.ts
CHANGED
|
@@ -22,6 +22,13 @@ export interface ITableOfContentsRegistry {
|
|
|
22
22
|
* @returns Table of contents model or undefined if not found
|
|
23
23
|
*/
|
|
24
24
|
getModel(widget: Widget, configuration?: TableOfContents.IConfig): TableOfContents.Model | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Get the toolbar items for a widget.
|
|
27
|
+
*
|
|
28
|
+
* @param widget - widget
|
|
29
|
+
* @returns List of toolbar items
|
|
30
|
+
*/
|
|
31
|
+
getToolbarItems?(widget: Widget): ToolbarRegistry.IToolbarItem[] | undefined;
|
|
25
32
|
/**
|
|
26
33
|
* Adds a table of contents factory to the registry.
|
|
27
34
|
*
|
|
@@ -71,6 +78,13 @@ export declare namespace TableOfContents {
|
|
|
71
78
|
* @returns The table of contents model
|
|
72
79
|
*/
|
|
73
80
|
createNew: (widget: W, configuration?: TableOfContents.IConfig) => IModel<H>;
|
|
81
|
+
/**
|
|
82
|
+
* Get additional toolbar items for the widget
|
|
83
|
+
*
|
|
84
|
+
* @param widget - widget
|
|
85
|
+
* @returns List of toolbar items
|
|
86
|
+
*/
|
|
87
|
+
getToolbarItems?: (widget: W) => ToolbarRegistry.IToolbarItem[];
|
|
74
88
|
}
|
|
75
89
|
/**
|
|
76
90
|
* Table of Contents configuration
|
package/lib/tokens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAyC1C;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,KAAK,CAC/C,0CAA0C,EAC1C,iDAAiD,CAClD,CAAC;AAcF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,KAAK,CAC9C,yCAAyC,EACzC,yCAAyC,CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,KAAW,eAAe,CA6O/B;AA7OD,WAAiB,eAAe;IAsE9B;;OAEG;IACU,6BAAa,GAAY;QACpC,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,KAAK;KACzB,CAAC;AA6JJ,CAAC,EA7OgB,eAAe,KAAf,eAAe,QA6O/B"}
|
package/lib/utils/markdown.js
CHANGED
|
@@ -144,9 +144,9 @@ export function getHeadings(text) {
|
|
|
144
144
|
function extractLeadingFences(line) {
|
|
145
145
|
let match;
|
|
146
146
|
if (line.startsWith('`'))
|
|
147
|
-
match = line.match(
|
|
147
|
+
match = line.match(/^`{3,}/);
|
|
148
148
|
else
|
|
149
|
-
match = line.match(
|
|
149
|
+
match = line.match(/^~{3,}/);
|
|
150
150
|
return match ? match[0].length : 0;
|
|
151
151
|
}
|
|
152
152
|
const MARKDOWN_MIME_TYPE = [
|
|
@@ -226,7 +226,7 @@ export function isMarkdown(mime) {
|
|
|
226
226
|
*/
|
|
227
227
|
function parseHeading(line, nextLine) {
|
|
228
228
|
// Case: Markdown heading
|
|
229
|
-
let match = line.match(/^(
|
|
229
|
+
let match = line.match(/^(#{1,6}) (.*)/);
|
|
230
230
|
if (match) {
|
|
231
231
|
return {
|
|
232
232
|
text: cleanTitle(match[2]),
|
|
@@ -237,7 +237,7 @@ function parseHeading(line, nextLine) {
|
|
|
237
237
|
}
|
|
238
238
|
// Case: Markdown heading (alternative style)
|
|
239
239
|
if (nextLine) {
|
|
240
|
-
match = nextLine.match(/^ {0,3}([=]{2,}
|
|
240
|
+
match = nextLine.match(/^ {0,3}([=]{2,}|-{2,})\s*$/);
|
|
241
241
|
if (match) {
|
|
242
242
|
return {
|
|
243
243
|
text: cleanTitle(line),
|
|
@@ -248,7 +248,7 @@ function parseHeading(line, nextLine) {
|
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
// Case: HTML heading (WARNING: this is not particularly robust, as HTML headings can span multiple lines)
|
|
251
|
-
match = line.match(/<h([1-6]).*>(.*)<\/h\1>/i);
|
|
251
|
+
match = line.match(/<h([1-6]).*>(.*)<\/h\1>/i); // eslint-disable-line regexp/no-super-linear-backtracking
|
|
252
252
|
if (match) {
|
|
253
253
|
return {
|
|
254
254
|
text: match[2],
|
|
@@ -266,5 +266,5 @@ function cleanTitle(heading) {
|
|
|
266
266
|
/**
|
|
267
267
|
* Ignore title with html tag with a class name equal to `jp-toc-ignore` or `tocSkip`
|
|
268
268
|
*/
|
|
269
|
-
const skipHeading = /<\w+\s(
|
|
269
|
+
const skipHeading = /<\w+\s(?:.*?\s)?class="(?:.*?\s)?(?:jp-toc-ignore|tocSkip)(?:\s.*?)?"(?:\s.*?)?>/;
|
|
270
270
|
//# sourceMappingURL=markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/toc",
|
|
3
|
-
"version": "6.6.0-
|
|
3
|
+
"version": "6.6.0-beta.1",
|
|
4
4
|
"description": "JupyterLab - Table of Contents widget",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyterlab"
|
|
@@ -41,23 +41,23 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@jupyter/react-components": "^0.16.6",
|
|
44
|
-
"@jupyterlab/apputils": "^4.7.0-
|
|
45
|
-
"@jupyterlab/coreutils": "^6.6.0-
|
|
46
|
-
"@jupyterlab/docregistry": "^4.6.0-
|
|
47
|
-
"@jupyterlab/observables": "^5.6.0-
|
|
48
|
-
"@jupyterlab/rendermime": "^4.6.0-
|
|
49
|
-
"@jupyterlab/rendermime-interfaces": "^3.14.0-
|
|
50
|
-
"@jupyterlab/translation": "^4.6.0-
|
|
51
|
-
"@jupyterlab/ui-components": "^4.6.0-
|
|
44
|
+
"@jupyterlab/apputils": "^4.7.0-beta.1",
|
|
45
|
+
"@jupyterlab/coreutils": "^6.6.0-beta.1",
|
|
46
|
+
"@jupyterlab/docregistry": "^4.6.0-beta.1",
|
|
47
|
+
"@jupyterlab/observables": "^5.6.0-beta.1",
|
|
48
|
+
"@jupyterlab/rendermime": "^4.6.0-beta.1",
|
|
49
|
+
"@jupyterlab/rendermime-interfaces": "^3.14.0-beta.1",
|
|
50
|
+
"@jupyterlab/translation": "^4.6.0-beta.1",
|
|
51
|
+
"@jupyterlab/ui-components": "^4.6.0-beta.1",
|
|
52
52
|
"@lumino/coreutils": "^2.2.2",
|
|
53
53
|
"@lumino/disposable": "^2.1.5",
|
|
54
54
|
"@lumino/messaging": "^2.0.4",
|
|
55
55
|
"@lumino/signaling": "^2.1.5",
|
|
56
|
-
"@lumino/widgets": "^2.
|
|
56
|
+
"@lumino/widgets": "^2.8.0",
|
|
57
57
|
"react": "^18.2.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@jupyterlab/testing": "^4.6.0-
|
|
60
|
+
"@jupyterlab/testing": "^4.6.0-beta.1",
|
|
61
61
|
"@types/jest": "^29.2.0",
|
|
62
62
|
"@types/react": "^18.0.26",
|
|
63
63
|
"jest": "^29.2.0",
|
package/src/factory.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
4
|
import type { IWidgetTracker } from '@jupyterlab/apputils';
|
|
5
|
+
import type { ToolbarRegistry } from '@jupyterlab/apputils';
|
|
5
6
|
import { ActivityMonitor, PathExt } from '@jupyterlab/coreutils';
|
|
6
7
|
import type { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
7
8
|
import type { Widget } from '@lumino/widgets';
|
|
@@ -43,6 +44,16 @@ export abstract class TableOfContentsFactory<
|
|
|
43
44
|
return true;
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Get additional toolbar items for the widget
|
|
49
|
+
*
|
|
50
|
+
* @param widget - widget
|
|
51
|
+
* @returns List of toolbar items
|
|
52
|
+
*/
|
|
53
|
+
getToolbarItems(widget: W): ToolbarRegistry.IToolbarItem[] {
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
|
|
46
57
|
/**
|
|
47
58
|
* Create a new table of contents model for the widget
|
|
48
59
|
*
|
package/src/registry.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
+
import type { ToolbarRegistry } from '@jupyterlab/apputils';
|
|
4
5
|
import type { IDisposable } from '@lumino/disposable';
|
|
5
6
|
import { DisposableDelegate } from '@lumino/disposable';
|
|
6
7
|
import type { Widget } from '@lumino/widgets';
|
|
@@ -32,6 +33,23 @@ export class TableOfContentsRegistry implements ITableOfContentsRegistry {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Get the toolbar items for a widget.
|
|
38
|
+
*
|
|
39
|
+
* @param widget - widget
|
|
40
|
+
* @returns List of toolbar items
|
|
41
|
+
*/
|
|
42
|
+
getToolbarItems(widget: Widget): ToolbarRegistry.IToolbarItem[] | undefined {
|
|
43
|
+
for (const generator of this._generators.values()) {
|
|
44
|
+
if (generator.isApplicable(widget)) {
|
|
45
|
+
if (generator.getToolbarItems) {
|
|
46
|
+
return generator.getToolbarItems(widget);
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
35
53
|
/**
|
|
36
54
|
* Adds a table of contents generator to the registry.
|
|
37
55
|
*
|
package/src/tokens.ts
CHANGED
|
@@ -30,6 +30,14 @@ export interface ITableOfContentsRegistry {
|
|
|
30
30
|
configuration?: TableOfContents.IConfig
|
|
31
31
|
): TableOfContents.Model | undefined;
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Get the toolbar items for a widget.
|
|
35
|
+
*
|
|
36
|
+
* @param widget - widget
|
|
37
|
+
* @returns List of toolbar items
|
|
38
|
+
*/
|
|
39
|
+
getToolbarItems?(widget: Widget): ToolbarRegistry.IToolbarItem[] | undefined;
|
|
40
|
+
|
|
33
41
|
/**
|
|
34
42
|
* Adds a table of contents factory to the registry.
|
|
35
43
|
*
|
|
@@ -96,6 +104,14 @@ export namespace TableOfContents {
|
|
|
96
104
|
widget: W,
|
|
97
105
|
configuration?: TableOfContents.IConfig
|
|
98
106
|
) => IModel<H>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Get additional toolbar items for the widget
|
|
110
|
+
*
|
|
111
|
+
* @param widget - widget
|
|
112
|
+
* @returns List of toolbar items
|
|
113
|
+
*/
|
|
114
|
+
getToolbarItems?: (widget: W) => ToolbarRegistry.IToolbarItem[];
|
|
99
115
|
}
|
|
100
116
|
|
|
101
117
|
/**
|
package/src/utils/markdown.ts
CHANGED
|
@@ -195,8 +195,8 @@ export function getHeadings(text: string): IMarkdownHeading[] {
|
|
|
195
195
|
// Returns the length of ``` or ~~~ fences.
|
|
196
196
|
function extractLeadingFences(line: string) {
|
|
197
197
|
let match;
|
|
198
|
-
if (line.startsWith('`')) match = line.match(
|
|
199
|
-
else match = line.match(
|
|
198
|
+
if (line.startsWith('`')) match = line.match(/^`{3,}/);
|
|
199
|
+
else match = line.match(/^~{3,}/);
|
|
200
200
|
return match ? match[0].length : 0;
|
|
201
201
|
}
|
|
202
202
|
|
|
@@ -305,7 +305,7 @@ interface IHeader {
|
|
|
305
305
|
*/
|
|
306
306
|
function parseHeading(line: string, nextLine?: string): IHeader | null {
|
|
307
307
|
// Case: Markdown heading
|
|
308
|
-
let match = line.match(/^(
|
|
308
|
+
let match = line.match(/^(#{1,6}) (.*)/);
|
|
309
309
|
if (match) {
|
|
310
310
|
return {
|
|
311
311
|
text: cleanTitle(match[2]),
|
|
@@ -316,7 +316,7 @@ function parseHeading(line: string, nextLine?: string): IHeader | null {
|
|
|
316
316
|
}
|
|
317
317
|
// Case: Markdown heading (alternative style)
|
|
318
318
|
if (nextLine) {
|
|
319
|
-
match = nextLine.match(/^ {0,3}([=]{2,}
|
|
319
|
+
match = nextLine.match(/^ {0,3}([=]{2,}|-{2,})\s*$/);
|
|
320
320
|
if (match) {
|
|
321
321
|
return {
|
|
322
322
|
text: cleanTitle(line),
|
|
@@ -327,7 +327,7 @@ function parseHeading(line: string, nextLine?: string): IHeader | null {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
// Case: HTML heading (WARNING: this is not particularly robust, as HTML headings can span multiple lines)
|
|
330
|
-
match = line.match(/<h([1-6]).*>(.*)<\/h\1>/i);
|
|
330
|
+
match = line.match(/<h([1-6]).*>(.*)<\/h\1>/i); // eslint-disable-line regexp/no-super-linear-backtracking
|
|
331
331
|
if (match) {
|
|
332
332
|
return {
|
|
333
333
|
text: match[2],
|
|
@@ -349,4 +349,4 @@ function cleanTitle(heading: string): string {
|
|
|
349
349
|
* Ignore title with html tag with a class name equal to `jp-toc-ignore` or `tocSkip`
|
|
350
350
|
*/
|
|
351
351
|
const skipHeading =
|
|
352
|
-
/<\w+\s(
|
|
352
|
+
/<\w+\s(?:.*?\s)?class="(?:.*?\s)?(?:jp-toc-ignore|tocSkip)(?:\s.*?)?"(?:\s.*?)?>/;
|