@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 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
- if (emitSignal) {
158
- this._activeHeadingChanged.emit(heading);
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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"}
@@ -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(parser: IMarkdownParser, raw: string, level: number): Promise<string | null>;
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
  *
@@ -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(parser, raw, level) {
12
+ export async function getHeadingId(markdownParser, raw, level, sanitizer) {
11
13
  try {
12
- const innerHTML = await parser.render(raw);
13
- if (!innerHTML) {
14
- return null;
15
- }
16
- const container = document.createElement('div');
17
- container.innerHTML = innerHTML;
18
- const header = container.querySelector(`h${level}`);
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 renderMarkdown.createHeaderId(header);
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":"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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.0.9",
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.9",
45
- "@jupyterlab/coreutils": "^6.0.9",
46
- "@jupyterlab/docregistry": "^4.0.9",
47
- "@jupyterlab/observables": "^5.0.9",
48
- "@jupyterlab/rendermime": "^4.0.9",
49
- "@jupyterlab/translation": "^4.0.9",
50
- "@jupyterlab/ui-components": "^4.0.9",
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.9",
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
- if (emitSignal) {
204
- this._activeHeadingChanged.emit(heading);
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
 
@@ -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
- parser: IMarkdownParser,
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 innerHTML = await parser.render(raw);
38
+ const host = document.createElement('div');
35
39
 
36
- if (!innerHTML) {
37
- return null;
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 container = document.createElement('div');
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 renderMarkdown.createHeaderId(header);
57
+ return header.id;
48
58
  } catch (reason) {
49
59
  console.error('Failed to parse a heading.', reason);
50
60
  }