@jupyterlab/toc 6.0.9 → 6.0.11
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/model.js +4 -3
- package/lib/model.js.map +1 -1
- package/lib/utils/markdown.d.ts +3 -1
- package/lib/utils/markdown.js +17 -9
- package/lib/utils/markdown.js.map +1 -1
- package/package.json +10 -9
- package/src/model.ts +5 -3
- package/src/utils/markdown.ts +20 -10
package/lib/model.js
CHANGED
|
@@ -154,9 +154,10 @@ export class TableOfContentsModel extends VDomModel {
|
|
|
154
154
|
if (this._activeHeading !== heading) {
|
|
155
155
|
this._activeHeading = heading;
|
|
156
156
|
this.stateChanged.emit();
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
}
|
|
158
|
+
if (emitSignal) {
|
|
159
|
+
// Always emit the signal to trigger a scroll even if the value did not change
|
|
160
|
+
this._activeHeadingChanged.emit(this._activeHeading);
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
/**
|
package/lib/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/markdown.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IMarkdownParser } from '@jupyterlab/rendermime';
|
|
2
|
+
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
2
3
|
import { TableOfContents } from '../tokens';
|
|
3
4
|
/**
|
|
4
5
|
* Markdown heading
|
|
@@ -18,8 +19,9 @@ export interface IMarkdownHeading extends TableOfContents.IHeading {
|
|
|
18
19
|
*
|
|
19
20
|
* @param raw Raw markdown heading
|
|
20
21
|
* @param level Heading level
|
|
22
|
+
* @param sanitizer HTML sanitizer
|
|
21
23
|
*/
|
|
22
|
-
export declare function getHeadingId(
|
|
24
|
+
export declare function getHeadingId(markdownParser: IMarkdownParser, raw: string, level: number, sanitizer?: IRenderMime.ISanitizer): Promise<string | null>;
|
|
23
25
|
/**
|
|
24
26
|
* Parses the provided string and returns a list of headings.
|
|
25
27
|
*
|
package/lib/utils/markdown.js
CHANGED
|
@@ -1,25 +1,33 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
|
+
import { Sanitizer } from '@jupyterlab/apputils';
|
|
3
4
|
import { renderMarkdown } from '@jupyterlab/rendermime';
|
|
4
5
|
/**
|
|
5
6
|
* Build the heading html id.
|
|
6
7
|
*
|
|
7
8
|
* @param raw Raw markdown heading
|
|
8
9
|
* @param level Heading level
|
|
10
|
+
* @param sanitizer HTML sanitizer
|
|
9
11
|
*/
|
|
10
|
-
export async function getHeadingId(
|
|
12
|
+
export async function getHeadingId(markdownParser, raw, level, sanitizer) {
|
|
11
13
|
try {
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
const host = document.createElement('div');
|
|
15
|
+
await renderMarkdown({
|
|
16
|
+
markdownParser,
|
|
17
|
+
host,
|
|
18
|
+
source: raw,
|
|
19
|
+
trusted: false,
|
|
20
|
+
sanitizer: sanitizer !== null && sanitizer !== void 0 ? sanitizer : new Sanitizer(),
|
|
21
|
+
shouldTypeset: false,
|
|
22
|
+
resolver: null,
|
|
23
|
+
linkHandler: null,
|
|
24
|
+
latexTypesetter: null
|
|
25
|
+
});
|
|
26
|
+
const header = host.querySelector(`h${level}`);
|
|
19
27
|
if (!header) {
|
|
20
28
|
return null;
|
|
21
29
|
}
|
|
22
|
-
return
|
|
30
|
+
return header.id;
|
|
23
31
|
}
|
|
24
32
|
catch (reason) {
|
|
25
33
|
console.error('Failed to parse a heading.', reason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAmB,cAAc,EAAE,MAAM,wBAAwB,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.0.
|
|
3
|
+
"version": "6.0.11",
|
|
4
4
|
"description": "JupyterLab - Table of Contents widget",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyterlab"
|
|
@@ -41,13 +41,14 @@
|
|
|
41
41
|
"watch": "tsc -b --watch"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@jupyterlab/apputils": "^4.1.
|
|
45
|
-
"@jupyterlab/coreutils": "^6.0.
|
|
46
|
-
"@jupyterlab/docregistry": "^4.0.
|
|
47
|
-
"@jupyterlab/observables": "^5.0.
|
|
48
|
-
"@jupyterlab/rendermime": "^4.0.
|
|
49
|
-
"@jupyterlab/
|
|
50
|
-
"@jupyterlab/
|
|
44
|
+
"@jupyterlab/apputils": "^4.1.11",
|
|
45
|
+
"@jupyterlab/coreutils": "^6.0.11",
|
|
46
|
+
"@jupyterlab/docregistry": "^4.0.11",
|
|
47
|
+
"@jupyterlab/observables": "^5.0.11",
|
|
48
|
+
"@jupyterlab/rendermime": "^4.0.11",
|
|
49
|
+
"@jupyterlab/rendermime-interfaces": "^3.8.11",
|
|
50
|
+
"@jupyterlab/translation": "^4.0.11",
|
|
51
|
+
"@jupyterlab/ui-components": "^4.0.11",
|
|
51
52
|
"@lumino/coreutils": "^2.1.2",
|
|
52
53
|
"@lumino/disposable": "^2.1.2",
|
|
53
54
|
"@lumino/messaging": "^2.0.1",
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
"react": "^18.2.0"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@jupyterlab/testing": "^4.0.
|
|
60
|
+
"@jupyterlab/testing": "^4.0.11",
|
|
60
61
|
"@types/jest": "^29.2.0",
|
|
61
62
|
"@types/react": "^18.0.26",
|
|
62
63
|
"jest": "^29.2.0",
|
package/src/model.ts
CHANGED
|
@@ -200,9 +200,11 @@ export abstract class TableOfContentsModel<
|
|
|
200
200
|
if (this._activeHeading !== heading) {
|
|
201
201
|
this._activeHeading = heading;
|
|
202
202
|
this.stateChanged.emit();
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (emitSignal) {
|
|
206
|
+
// Always emit the signal to trigger a scroll even if the value did not change
|
|
207
|
+
this._activeHeadingChanged.emit(this._activeHeading);
|
|
206
208
|
}
|
|
207
209
|
}
|
|
208
210
|
|
package/src/utils/markdown.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
|
|
4
|
+
import { Sanitizer } from '@jupyterlab/apputils';
|
|
4
5
|
import { IMarkdownParser, renderMarkdown } from '@jupyterlab/rendermime';
|
|
6
|
+
import { IRenderMime } from '@jupyterlab/rendermime-interfaces';
|
|
5
7
|
import { TableOfContents } from '../tokens';
|
|
6
8
|
|
|
7
9
|
/**
|
|
@@ -24,27 +26,35 @@ export interface IMarkdownHeading extends TableOfContents.IHeading {
|
|
|
24
26
|
*
|
|
25
27
|
* @param raw Raw markdown heading
|
|
26
28
|
* @param level Heading level
|
|
29
|
+
* @param sanitizer HTML sanitizer
|
|
27
30
|
*/
|
|
28
31
|
export async function getHeadingId(
|
|
29
|
-
|
|
32
|
+
markdownParser: IMarkdownParser,
|
|
30
33
|
raw: string,
|
|
31
|
-
level: number
|
|
34
|
+
level: number,
|
|
35
|
+
sanitizer?: IRenderMime.ISanitizer
|
|
32
36
|
): Promise<string | null> {
|
|
33
37
|
try {
|
|
34
|
-
const
|
|
38
|
+
const host = document.createElement('div');
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
await renderMarkdown({
|
|
41
|
+
markdownParser,
|
|
42
|
+
host,
|
|
43
|
+
source: raw,
|
|
44
|
+
trusted: false,
|
|
45
|
+
sanitizer: sanitizer ?? new Sanitizer(),
|
|
46
|
+
shouldTypeset: false,
|
|
47
|
+
resolver: null,
|
|
48
|
+
linkHandler: null,
|
|
49
|
+
latexTypesetter: null
|
|
50
|
+
});
|
|
39
51
|
|
|
40
|
-
const
|
|
41
|
-
container.innerHTML = innerHTML;
|
|
42
|
-
const header = container.querySelector(`h${level}`);
|
|
52
|
+
const header = host.querySelector(`h${level}`);
|
|
43
53
|
if (!header) {
|
|
44
54
|
return null;
|
|
45
55
|
}
|
|
46
56
|
|
|
47
|
-
return
|
|
57
|
+
return header.id;
|
|
48
58
|
} catch (reason) {
|
|
49
59
|
console.error('Failed to parse a heading.', reason);
|
|
50
60
|
}
|