@jupyterlab/toc 6.6.0-alpha.2 → 6.6.0-alpha.4
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 +5 -5
- package/lib/factory.js.map +1 -1
- package/lib/model.d.ts +2 -2
- package/lib/model.js.map +1 -1
- package/lib/panel.d.ts +3 -3
- package/lib/registry.d.ts +3 -3
- package/lib/registry.js.map +1 -1
- package/lib/tocitem.d.ts +1 -1
- package/lib/tocitem.js.map +1 -1
- package/lib/toctree.d.ts +1 -1
- package/lib/tokens.js.map +1 -1
- package/lib/tracker.d.ts +2 -2
- package/lib/treeview.d.ts +1 -1
- package/lib/utils/markdown.d.ts +3 -3
- package/lib/utils/markdown.js +21 -20
- package/lib/utils/markdown.js.map +1 -1
- package/package.json +12 -12
- package/src/factory.ts +6 -7
- package/src/model.ts +6 -5
- package/src/panel.ts +3 -3
- package/src/registry.ts +4 -3
- package/src/tocitem.tsx +3 -2
- package/src/toctree.tsx +1 -1
- package/src/tokens.ts +1 -2
- package/src/tracker.ts +2 -2
- package/src/treeview.tsx +1 -1
- package/src/utils/markdown.ts +33 -27
package/lib/factory.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { IWidgetTracker } from '@jupyterlab/apputils';
|
|
2
|
-
import { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
3
|
-
import { Widget } from '@lumino/widgets';
|
|
4
|
-
import { TableOfContentsModel } from './model';
|
|
5
|
-
import { TableOfContents } from './tokens';
|
|
1
|
+
import type { IWidgetTracker } from '@jupyterlab/apputils';
|
|
2
|
+
import type { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
3
|
+
import type { Widget } from '@lumino/widgets';
|
|
4
|
+
import type { TableOfContentsModel } from './model';
|
|
5
|
+
import type { TableOfContents } from './tokens';
|
|
6
6
|
/**
|
|
7
7
|
* Abstract table of contents model factory for IDocumentWidget.
|
|
8
8
|
*/
|
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;AAG3D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAMjE;;;;GAIG;AACH,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;GAEG;AACH,MAAM,OAAgB,sBAAsB;
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,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;;;;;;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/model.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VDomModel } from '@jupyterlab/ui-components';
|
|
2
|
-
import { ISignal } from '@lumino/signaling';
|
|
3
|
-
import { Widget } from '@lumino/widgets';
|
|
2
|
+
import type { ISignal } from '@lumino/signaling';
|
|
3
|
+
import type { Widget } from '@lumino/widgets';
|
|
4
4
|
import { TableOfContents } from './tokens';
|
|
5
5
|
/**
|
|
6
6
|
* Abstract table of contents model.
|
package/lib/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/lib/panel.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ITranslator } from '@jupyterlab/translation';
|
|
1
|
+
import type { ITranslator } from '@jupyterlab/translation';
|
|
2
2
|
import { SidePanel } from '@jupyterlab/ui-components';
|
|
3
|
-
import { TableOfContents } from './tokens';
|
|
4
|
-
import { Message } from '@lumino/messaging';
|
|
3
|
+
import type { TableOfContents } from './tokens';
|
|
4
|
+
import type { Message } from '@lumino/messaging';
|
|
5
5
|
/**
|
|
6
6
|
* Table of contents sidebar panel.
|
|
7
7
|
*/
|
package/lib/registry.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IDisposable } from '@lumino/disposable';
|
|
2
|
-
import { Widget } from '@lumino/widgets';
|
|
3
|
-
import { ITableOfContentsRegistry, TableOfContents } from './tokens';
|
|
1
|
+
import type { IDisposable } from '@lumino/disposable';
|
|
2
|
+
import type { Widget } from '@lumino/widgets';
|
|
3
|
+
import type { ITableOfContentsRegistry, TableOfContents } from './tokens';
|
|
4
4
|
/**
|
|
5
5
|
* Class for registering table of contents generators.
|
|
6
6
|
*/
|
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;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxD;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QAqCU,gBAAW,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC1D,eAAU,GAAG,CAAC,CAAC;IACzB,CAAC;IAtCC;;;;;;;;;;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;;;;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/tocitem.d.ts
CHANGED
package/lib/tocitem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tocitem.js","sourceRoot":"","sources":["../src/tocitem.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tocitem.js","sourceRoot":"","sources":["../src/tocitem.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AA0BrD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK,CAAC,aAE9C;IACC;;;;OAIG;IACH,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5E,yCAAyC;QACzC,MAAM,YAAY,GAAG,CAAC,KAAkB,EAAE,EAAE;YAC1C,kFAAkF;YAClF,IACE,CAAC,KAAK,CAAC,gBAAgB;gBACtB,KAAK,CAAC,MAA0B,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,SAAS,EACjE,CAAC;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,CACL,oBAAC,QAAQ,IACP,SAAS,EAAE,+BAA+B,EAC1C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,OAAO,CAAC,SAAS,EAC5B,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,CAAC,KAAwC,EAAE,EAAE;gBACxD,6BAA6B;gBAC7B,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;oBAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC,EACD,OAAO,EAAE,KAAK,CAAC,EAAE;gBACf,oEAAoE;gBACpE,qEAAqE;gBACrE,kBAAkB;gBAClB,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClE,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,WAAW,CAAC,OAAO,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,6BAAK,SAAS,EAAC,oBAAoB;gBACjC,8BACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE,OAAO,CAAC,IAAI,KACf,OAAO,CAAC,OAAO;oBAElB,OAAO,CAAC,MAAM;oBACd,OAAO,CAAC,IAAI,CACR,CACH;YACL,QAAQ,CACA,CACZ,CAAC;IACJ,CAAC;CACF"}
|
package/lib/toctree.d.ts
CHANGED
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;AAiC1C;;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,
|
|
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;AAiC1C;;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,CAqO/B;AArOD,WAAiB,eAAe;IA8D9B;;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,EArOgB,eAAe,KAAf,eAAe,QAqO/B"}
|
package/lib/tracker.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Widget } from '@lumino/widgets';
|
|
2
|
-
import { ITableOfContentsTracker, TableOfContents } from './tokens';
|
|
1
|
+
import type { Widget } from '@lumino/widgets';
|
|
2
|
+
import type { ITableOfContentsTracker, TableOfContents } from './tokens';
|
|
3
3
|
/**
|
|
4
4
|
* Table of contents tracker
|
|
5
5
|
*/
|
package/lib/treeview.d.ts
CHANGED
package/lib/utils/markdown.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { IMarkdownParser } from '@jupyterlab/rendermime';
|
|
2
|
-
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
3
|
-
import { TableOfContents } from '../tokens';
|
|
1
|
+
import type { IMarkdownParser } from '@jupyterlab/rendermime';
|
|
2
|
+
import type { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
3
|
+
import type { TableOfContents } from '../tokens';
|
|
4
4
|
/**
|
|
5
5
|
* Markdown heading
|
|
6
6
|
*/
|
package/lib/utils/markdown.js
CHANGED
|
@@ -48,29 +48,30 @@ export async function getHeadingId(markdownParser, raw, level, sanitizer) {
|
|
|
48
48
|
* Returns an empty list if the parser is `null`.
|
|
49
49
|
*/
|
|
50
50
|
export async function parseHeadings(markdownText, parser) {
|
|
51
|
-
if (!parser) {
|
|
52
|
-
console.warn(
|
|
51
|
+
if (!parser || !parser.getHeadingTokens) {
|
|
52
|
+
console.warn('Unable to parse headings; Markdown parser is missing or does not implement getHeadingTokens().');
|
|
53
53
|
return [];
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
55
|
+
// Get the heading tokens from the parser, including the source line metadata
|
|
56
|
+
const headingTokens = await parser.getHeadingTokens(markdownText);
|
|
57
|
+
// Convert each heading token into HTML and extract the heading elements,
|
|
58
|
+
// as this provides a clean and reliable way to retrieve the headings.
|
|
59
|
+
const parseHeadings = await Promise.all(headingTokens.map(async (token) => {
|
|
60
|
+
const renderedHtml = await parser.render(token.raw);
|
|
61
|
+
const dom = new DOMParser().parseFromString(renderedHtml, 'text/html');
|
|
62
|
+
const htmlHeadings = Array.from(dom.querySelectorAll('h1, h2, h3, h4, h5, h6'));
|
|
63
|
+
return htmlHeadings.map(e => {
|
|
64
|
+
var _a;
|
|
65
|
+
return ({
|
|
66
|
+
text: ((_a = e.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '',
|
|
67
|
+
line: token.line,
|
|
68
|
+
level: parseInt(e.tagName[1], 10),
|
|
69
|
+
raw: token.raw.replace(/\n+$/, ''),
|
|
70
|
+
skip: skipHeading.test(token.raw)
|
|
71
|
+
});
|
|
71
72
|
});
|
|
72
|
-
});
|
|
73
|
-
return
|
|
73
|
+
}));
|
|
74
|
+
return parseHeadings.reduce((acc, curr) => acc.concat(curr), []);
|
|
74
75
|
}
|
|
75
76
|
/**
|
|
76
77
|
* @deprecated in favour of async parseHeadings()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
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-alpha.
|
|
3
|
+
"version": "6.6.0-alpha.4",
|
|
4
4
|
"description": "JupyterLab - Table of Contents widget",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyterlab"
|
|
@@ -41,28 +41,28 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@jupyter/react-components": "^0.16.6",
|
|
44
|
-
"@jupyterlab/apputils": "^4.7.0-alpha.
|
|
45
|
-
"@jupyterlab/coreutils": "^6.6.0-alpha.
|
|
46
|
-
"@jupyterlab/docregistry": "^4.6.0-alpha.
|
|
47
|
-
"@jupyterlab/observables": "^5.6.0-alpha.
|
|
48
|
-
"@jupyterlab/rendermime": "^4.6.0-alpha.
|
|
49
|
-
"@jupyterlab/rendermime-interfaces": "^3.14.0-alpha.
|
|
50
|
-
"@jupyterlab/translation": "^4.6.0-alpha.
|
|
51
|
-
"@jupyterlab/ui-components": "^4.6.0-alpha.
|
|
44
|
+
"@jupyterlab/apputils": "^4.7.0-alpha.4",
|
|
45
|
+
"@jupyterlab/coreutils": "^6.6.0-alpha.4",
|
|
46
|
+
"@jupyterlab/docregistry": "^4.6.0-alpha.4",
|
|
47
|
+
"@jupyterlab/observables": "^5.6.0-alpha.4",
|
|
48
|
+
"@jupyterlab/rendermime": "^4.6.0-alpha.4",
|
|
49
|
+
"@jupyterlab/rendermime-interfaces": "^3.14.0-alpha.4",
|
|
50
|
+
"@jupyterlab/translation": "^4.6.0-alpha.4",
|
|
51
|
+
"@jupyterlab/ui-components": "^4.6.0-alpha.4",
|
|
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.7.
|
|
56
|
+
"@lumino/widgets": "^2.7.5",
|
|
57
57
|
"react": "^18.2.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@jupyterlab/testing": "^4.6.0-alpha.
|
|
60
|
+
"@jupyterlab/testing": "^4.6.0-alpha.4",
|
|
61
61
|
"@types/jest": "^29.2.0",
|
|
62
62
|
"@types/react": "^18.0.26",
|
|
63
63
|
"jest": "^29.2.0",
|
|
64
64
|
"rimraf": "~5.0.5",
|
|
65
|
-
"typescript": "~5.
|
|
65
|
+
"typescript": "~5.9.3"
|
|
66
66
|
},
|
|
67
67
|
"publishConfig": {
|
|
68
68
|
"access": "public"
|
package/src/factory.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
-
import { IWidgetTracker } from '@jupyterlab/apputils';
|
|
4
|
+
import type { IWidgetTracker } from '@jupyterlab/apputils';
|
|
5
5
|
import { ActivityMonitor, PathExt } from '@jupyterlab/coreutils';
|
|
6
|
-
import { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
7
|
-
import { Widget } from '@lumino/widgets';
|
|
8
|
-
import { TableOfContentsModel } from './model';
|
|
9
|
-
import { TableOfContents } from './tokens';
|
|
6
|
+
import type { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
7
|
+
import type { Widget } from '@lumino/widgets';
|
|
8
|
+
import type { TableOfContentsModel } from './model';
|
|
9
|
+
import type { TableOfContents } from './tokens';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Timeout for throttling ToC rendering following model changes.
|
|
@@ -21,8 +21,7 @@ const RENDER_TIMEOUT = 200;
|
|
|
21
21
|
export abstract class TableOfContentsFactory<
|
|
22
22
|
W extends IDocumentWidget,
|
|
23
23
|
H extends TableOfContents.IHeading = TableOfContents.IHeading
|
|
24
|
-
> implements TableOfContents.IFactory<W, H>
|
|
25
|
-
{
|
|
24
|
+
> implements TableOfContents.IFactory<W, H> {
|
|
26
25
|
/**
|
|
27
26
|
* Constructor
|
|
28
27
|
*
|
package/src/model.ts
CHANGED
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
|
|
4
4
|
import { VDomModel } from '@jupyterlab/ui-components';
|
|
5
5
|
import { JSONExt } from '@lumino/coreutils';
|
|
6
|
-
import { ISignal
|
|
7
|
-
import {
|
|
6
|
+
import type { ISignal } from '@lumino/signaling';
|
|
7
|
+
import { Signal } from '@lumino/signaling';
|
|
8
|
+
import type { Widget } from '@lumino/widgets';
|
|
8
9
|
import { TableOfContents } from './tokens';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Abstract table of contents model.
|
|
12
13
|
*/
|
|
13
14
|
export abstract class TableOfContentsModel<
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
H extends TableOfContents.IHeading,
|
|
16
|
+
T extends Widget = Widget
|
|
17
|
+
>
|
|
17
18
|
extends VDomModel
|
|
18
19
|
implements TableOfContents.IModel<H>
|
|
19
20
|
{
|
package/src/panel.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITranslator } from '@jupyterlab/translation';
|
|
6
|
+
import type { ITranslator } from '@jupyterlab/translation';
|
|
7
7
|
import { SidePanel } from '@jupyterlab/ui-components';
|
|
8
8
|
import { Panel, Widget } from '@lumino/widgets';
|
|
9
9
|
import { TableOfContentsWidget } from './treeview';
|
|
10
|
-
import { TableOfContents } from './tokens';
|
|
11
|
-
import { Message } from '@lumino/messaging';
|
|
10
|
+
import type { TableOfContents } from './tokens';
|
|
11
|
+
import type { Message } from '@lumino/messaging';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Table of contents sidebar panel.
|
package/src/registry.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import type { IDisposable } from '@lumino/disposable';
|
|
5
|
+
import { DisposableDelegate } from '@lumino/disposable';
|
|
6
|
+
import type { Widget } from '@lumino/widgets';
|
|
7
|
+
import type { ITableOfContentsRegistry, TableOfContents } from './tokens';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Class for registering table of contents generators.
|
package/src/tocitem.tsx
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { TableOfContents } from './tokens';
|
|
6
|
-
import {
|
|
5
|
+
import type { TableOfContents } from './tokens';
|
|
6
|
+
import type { TreeItemElement } from '@jupyter/react-components';
|
|
7
|
+
import { TreeItem } from '@jupyter/react-components';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Interface describing component properties.
|
package/src/toctree.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { TreeView } from '@jupyter/react-components';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { TableOfContentsItem } from './tocitem';
|
|
7
|
-
import { TableOfContents } from './tokens';
|
|
7
|
+
import type { TableOfContents } from './tokens';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Interface describing component properties.
|
package/src/tokens.ts
CHANGED
|
@@ -297,6 +297,5 @@ export namespace TableOfContents {
|
|
|
297
297
|
/**
|
|
298
298
|
* Interface describing a toolbar item list
|
|
299
299
|
*/
|
|
300
|
-
export interface IToolbarItems
|
|
301
|
-
extends IObservableList<ToolbarRegistry.IToolbarItem> {}
|
|
300
|
+
export interface IToolbarItems extends IObservableList<ToolbarRegistry.IToolbarItem> {}
|
|
302
301
|
}
|
package/src/tracker.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
-
import { Widget } from '@lumino/widgets';
|
|
5
|
-
import { ITableOfContentsTracker, TableOfContents } from './tokens';
|
|
4
|
+
import type { Widget } from '@lumino/widgets';
|
|
5
|
+
import type { ITableOfContentsTracker, TableOfContents } from './tokens';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Table of contents tracker
|
package/src/treeview.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { VDomRenderer } from '@jupyterlab/ui-components';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { TableOfContentsTree } from './toctree';
|
|
7
|
-
import { TableOfContents } from './tokens';
|
|
7
|
+
import type { TableOfContents } from './tokens';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Table of contents widget.
|
package/src/utils/markdown.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
4
|
import { Sanitizer } from '@jupyterlab/apputils';
|
|
5
|
-
import { IMarkdownParser
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import type { IMarkdownParser } from '@jupyterlab/rendermime';
|
|
6
|
+
import { renderMarkdown } from '@jupyterlab/rendermime';
|
|
7
|
+
import type { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
8
|
+
import type { TableOfContents } from '../tokens';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Markdown heading
|
|
@@ -78,35 +79,40 @@ export async function parseHeadings(
|
|
|
78
79
|
markdownText: string,
|
|
79
80
|
parser: IMarkdownParser | null
|
|
80
81
|
): Promise<IMarkdownHeading[]> {
|
|
81
|
-
if (!parser) {
|
|
82
|
-
console.warn(
|
|
82
|
+
if (!parser || !parser.getHeadingTokens) {
|
|
83
|
+
console.warn(
|
|
84
|
+
'Unable to parse headings; Markdown parser is missing or does not implement getHeadingTokens().'
|
|
85
|
+
);
|
|
83
86
|
return [];
|
|
84
87
|
}
|
|
85
|
-
const renderedHtml = await parser.render(markdownText);
|
|
86
88
|
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
//
|
|
92
|
-
const
|
|
93
|
-
|
|
89
|
+
// Get the heading tokens from the parser, including the source line metadata
|
|
90
|
+
const headingTokens = await parser.getHeadingTokens(markdownText);
|
|
91
|
+
|
|
92
|
+
// Convert each heading token into HTML and extract the heading elements,
|
|
93
|
+
// as this provides a clean and reliable way to retrieve the headings.
|
|
94
|
+
const parseHeadings = await Promise.all(
|
|
95
|
+
headingTokens.map(async token => {
|
|
96
|
+
const renderedHtml = await parser.render(token.raw);
|
|
97
|
+
const dom = new DOMParser().parseFromString(renderedHtml, 'text/html');
|
|
98
|
+
const htmlHeadings = Array.from(
|
|
99
|
+
dom.querySelectorAll('h1, h2, h3, h4, h5, h6')
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
return htmlHeadings.map(e => ({
|
|
103
|
+
text: e.textContent?.trim() || '',
|
|
104
|
+
line: token.line,
|
|
105
|
+
level: parseInt(e.tagName[1], 10),
|
|
106
|
+
raw: token.raw.replace(/\n+$/, ''),
|
|
107
|
+
skip: skipHeading.test(token.raw)
|
|
108
|
+
}));
|
|
109
|
+
})
|
|
94
110
|
);
|
|
95
111
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
headings.push({
|
|
101
|
-
text: headingText,
|
|
102
|
-
line: lineIdx, // Line index within the parsed HTML, not the original Markdown source line
|
|
103
|
-
level: level,
|
|
104
|
-
raw: headingElement.outerHTML, // Parsed HTML string, not raw Markdown
|
|
105
|
-
skip: skipHeading.test(headingElement.outerHTML)
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
return headings;
|
|
112
|
+
return parseHeadings.reduce(
|
|
113
|
+
(acc, curr) => acc.concat(curr),
|
|
114
|
+
[] as IMarkdownHeading[]
|
|
115
|
+
);
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
/**
|