@jupyterlab/toc 5.3.0-alpha.7 → 6.0.0-alpha.2
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/generators/markdown/options_manager.d.ts +1 -1
- package/lib/generators/markdown/options_manager.js +1 -3
- package/lib/generators/markdown/options_manager.js.map +1 -1
- package/lib/generators/markdown/render.d.ts +0 -1
- package/lib/generators/notebook/append_heading.d.ts +1 -5
- package/lib/generators/notebook/append_heading.js +1 -5
- package/lib/generators/notebook/append_heading.js.map +1 -1
- package/lib/generators/notebook/get_code_cell_heading.d.ts +2 -2
- package/lib/generators/notebook/get_code_cell_heading.js +4 -2
- package/lib/generators/notebook/get_code_cell_heading.js.map +1 -1
- package/lib/generators/notebook/get_markdown_heading.d.ts +2 -2
- package/lib/generators/notebook/get_markdown_heading.js +4 -1
- package/lib/generators/notebook/get_markdown_heading.js.map +1 -1
- package/lib/generators/notebook/get_rendered_html_heading.d.ts +2 -2
- package/lib/generators/notebook/get_rendered_html_heading.js +6 -3
- package/lib/generators/notebook/get_rendered_html_heading.js.map +1 -1
- package/lib/generators/notebook/index.d.ts +1 -6
- package/lib/generators/notebook/index.js +155 -119
- package/lib/generators/notebook/index.js.map +1 -1
- package/lib/generators/notebook/options_manager.d.ts +1 -1
- package/lib/generators/notebook/options_manager.js +1 -3
- package/lib/generators/notebook/options_manager.js.map +1 -1
- package/lib/generators/notebook/render.d.ts +2 -7
- package/lib/generators/notebook/render.js +39 -61
- package/lib/generators/notebook/render.js.map +1 -1
- package/lib/generators/notebook/tagstool/index.js.map +1 -1
- package/lib/generators/notebook/toolbar_generator.d.ts +1 -1
- package/lib/generators/python/render.d.ts +0 -1
- package/lib/registry.d.ts +1 -2
- package/lib/registry.js +0 -11
- package/lib/registry.js.map +1 -1
- package/lib/toc.js +4 -0
- package/lib/toc.js.map +1 -1
- package/lib/toc_item.js.map +1 -1
- package/lib/utils/headings.d.ts +25 -17
- package/lib/utils/headings.js +20 -4
- package/lib/utils/headings.js.map +1 -1
- package/package.json +20 -19
- package/style/base.css +29 -2
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
4
|
-
import { TableOfContentsRegistry as Registry } from '../../registry';
|
|
5
4
|
/**
|
|
6
5
|
* Class for managing Markdown ToC generator options.
|
|
7
6
|
*
|
|
8
7
|
* @private
|
|
9
8
|
*/
|
|
10
|
-
class OptionsManager
|
|
9
|
+
class OptionsManager {
|
|
11
10
|
/**
|
|
12
11
|
* Returns an options manager.
|
|
13
12
|
*
|
|
@@ -16,7 +15,6 @@ class OptionsManager extends Registry.IOptionsManager {
|
|
|
16
15
|
* @returns options manager
|
|
17
16
|
*/
|
|
18
17
|
constructor(widget, options) {
|
|
19
|
-
super();
|
|
20
18
|
this._numbering = options.numbering;
|
|
21
19
|
this._numberingH1 = options.numberingH1;
|
|
22
20
|
this._widget = widget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options_manager.js","sourceRoot":"","sources":["../../../src/generators/markdown/options_manager.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"options_manager.js","sourceRoot":"","sources":["../../../src/generators/markdown/options_manager.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAe,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA+BtE;;;;GAIG;AACH,MAAM,cAAc;IAClB;;;;;;OAMG;IACH,YAAY,MAAuB,EAAE,OAAiB;QACpD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACrC,CAAC;IAOD;;OAEG;IACH,IAAI,SAAS,CAAC,KAAc;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW,CAAC,KAAc;QAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACvB;IACH,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CAAC,SAAkB,EAAE,WAAoB;QACxD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;CAMF;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -10,8 +10,4 @@ import { INotebookHeading } from '../../utils/headings';
|
|
|
10
10
|
* @param tags - filter tags
|
|
11
11
|
* @returns result tuple
|
|
12
12
|
*/
|
|
13
|
-
declare function appendHeading(headings: INotebookHeading[], heading: INotebookHeading, prev: INotebookHeading | null, collapseLevel: number, tags: string[]): [INotebookHeading[], INotebookHeading | null];
|
|
14
|
-
/**
|
|
15
|
-
* Exports.
|
|
16
|
-
*/
|
|
17
|
-
export { appendHeading };
|
|
13
|
+
export declare function appendHeading(headings: INotebookHeading[], heading: INotebookHeading, prev: INotebookHeading | null, collapseLevel: number, tags: string[]): [INotebookHeading[], INotebookHeading | null];
|
|
@@ -12,7 +12,7 @@ import { isHeadingFiltered } from './is_heading_filtered';
|
|
|
12
12
|
* @param tags - filter tags
|
|
13
13
|
* @returns result tuple
|
|
14
14
|
*/
|
|
15
|
-
function appendHeading(headings, heading, prev, collapseLevel, tags) {
|
|
15
|
+
export function appendHeading(headings, heading, prev, collapseLevel, tags) {
|
|
16
16
|
if (heading && !isHeadingFiltered(heading, tags) && heading.text) {
|
|
17
17
|
// Determine whether this heading is a child of a "header" notebook heading...
|
|
18
18
|
if (prev && prev.type === 'header') {
|
|
@@ -30,8 +30,4 @@ function appendHeading(headings, heading, prev, collapseLevel, tags) {
|
|
|
30
30
|
}
|
|
31
31
|
return [headings, prev];
|
|
32
32
|
}
|
|
33
|
-
/**
|
|
34
|
-
* Exports.
|
|
35
|
-
*/
|
|
36
|
-
export { appendHeading };
|
|
37
33
|
//# sourceMappingURL=append_heading.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/append_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"append_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/append_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA4B,EAC5B,OAAyB,EACzB,IAA6B,EAC7B,aAAqB,EACrB,IAAc;IAEd,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;QAChE,8EAA8E;QAC9E,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAClC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;oBACxB,oKAAoK;oBACpK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;iBAC7B;aACF;SACF;QACD,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;QACD,IAAI,GAAG,OAAO,CAAC;KAChB;IACD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cell } from '@jupyterlab/cells';
|
|
2
|
-
import { INotebookHeading } from '../../utils/headings';
|
|
2
|
+
import { INotebookHeading, RunningStatus } from '../../utils/headings';
|
|
3
3
|
/**
|
|
4
4
|
* Returns a "click" handler.
|
|
5
5
|
*
|
|
@@ -20,7 +20,7 @@ declare type onClickFactory = (line: number) => () => void;
|
|
|
20
20
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
21
21
|
* @returns notebook heading
|
|
22
22
|
*/
|
|
23
|
-
declare function getCodeCellHeading(text: string, onClick: onClickFactory, executionCount: string, lastLevel: number, cellRef: Cell, index?: number): INotebookHeading;
|
|
23
|
+
declare function getCodeCellHeading(text: string, onClick: onClickFactory, executionCount: string, lastLevel: number, cellRef: Cell, index?: number, isRunning?: RunningStatus): INotebookHeading;
|
|
24
24
|
/**
|
|
25
25
|
* Exports.
|
|
26
26
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
|
+
import { RunningStatus } from '../../utils/headings';
|
|
3
4
|
/**
|
|
4
5
|
* Returns a code entry notebook heading from a code string.
|
|
5
6
|
*
|
|
@@ -12,7 +13,7 @@
|
|
|
12
13
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
13
14
|
* @returns notebook heading
|
|
14
15
|
*/
|
|
15
|
-
function getCodeCellHeading(text, onClick, executionCount, lastLevel, cellRef, index = -1) {
|
|
16
|
+
function getCodeCellHeading(text, onClick, executionCount, lastLevel, cellRef, index = -1, isRunning = RunningStatus.Idle) {
|
|
16
17
|
let headings = [];
|
|
17
18
|
if (index === -1) {
|
|
18
19
|
console.warn('Deprecation warning! index argument will become mandatory in the next version');
|
|
@@ -34,7 +35,8 @@ function getCodeCellHeading(text, onClick, executionCount, lastLevel, cellRef, i
|
|
|
34
35
|
prompt: executionCount,
|
|
35
36
|
cellRef: cellRef,
|
|
36
37
|
hasChild: false,
|
|
37
|
-
index: index
|
|
38
|
+
index: index,
|
|
39
|
+
isRunning
|
|
38
40
|
});
|
|
39
41
|
}
|
|
40
42
|
return headings[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_code_cell_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_code_cell_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;
|
|
1
|
+
{"version":3,"file":"get_code_cell_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_code_cell_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAWvE;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CACzB,IAAY,EACZ,OAAuB,EACvB,cAAsB,EACtB,SAAiB,EACjB,OAAa,EACb,QAAgB,CAAC,CAAC,EAClB,SAAS,GAAG,aAAa,CAAC,IAAI;IAE9B,IAAI,QAAQ,GAAuB,EAAE,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,OAAO,CAAC,IAAI,CACV,+EAA+E,CAChF,CAAC;KACH;IACD,IAAI,IAAI,EAAE;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SACxB;QACD,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,SAAS,GAAG,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAC,CAAC;KACJ;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Cell } from '@jupyterlab/cells';
|
|
2
|
-
import { INotebookHeading } from '../../utils/headings';
|
|
2
|
+
import { INotebookHeading, RunningStatus } from '../../utils/headings';
|
|
3
3
|
import { INumberingDictionary } from '../../utils/numbering_dictionary';
|
|
4
4
|
/**
|
|
5
5
|
* Returns a "click" handler.
|
|
@@ -21,7 +21,7 @@ declare type onClickFactory = (line: number) => () => void;
|
|
|
21
21
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
22
22
|
* @returns notebook heading
|
|
23
23
|
*/
|
|
24
|
-
declare function getMarkdownHeadings(text: string, onClick: onClickFactory, dict: INumberingDictionary, lastLevel: number, cellRef: Cell, index?: number): INotebookHeading[];
|
|
24
|
+
declare function getMarkdownHeadings(text: string, onClick: onClickFactory, dict: INumberingDictionary, lastLevel: number, cellRef: Cell, index?: number, isRunning?: RunningStatus): INotebookHeading[];
|
|
25
25
|
/**
|
|
26
26
|
* Exports.
|
|
27
27
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
import { generateNumbering } from '../../utils/generate_numbering';
|
|
4
|
+
import { RunningStatus } from '../../utils/headings';
|
|
4
5
|
import { parseHeading } from '../../utils/parse_heading';
|
|
5
6
|
/**
|
|
6
7
|
* Parses a Markdown string and returns a notebook heading.
|
|
@@ -14,7 +15,7 @@ import { parseHeading } from '../../utils/parse_heading';
|
|
|
14
15
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
15
16
|
* @returns notebook heading
|
|
16
17
|
*/
|
|
17
|
-
function getMarkdownHeadings(text, onClick, dict, lastLevel, cellRef, index = -1) {
|
|
18
|
+
function getMarkdownHeadings(text, onClick, dict, lastLevel, cellRef, index = -1, isRunning = RunningStatus.Idle) {
|
|
18
19
|
const callback = onClick(0);
|
|
19
20
|
let headings = [];
|
|
20
21
|
if (index === -1) {
|
|
@@ -31,6 +32,7 @@ function getMarkdownHeadings(text, onClick, dict, lastLevel, cellRef, index = -1
|
|
|
31
32
|
type: 'header',
|
|
32
33
|
cellRef: cellRef,
|
|
33
34
|
hasChild: false,
|
|
35
|
+
isRunning,
|
|
34
36
|
index
|
|
35
37
|
});
|
|
36
38
|
}
|
|
@@ -42,6 +44,7 @@ function getMarkdownHeadings(text, onClick, dict, lastLevel, cellRef, index = -1
|
|
|
42
44
|
type: 'markdown',
|
|
43
45
|
cellRef: cellRef,
|
|
44
46
|
hasChild: false,
|
|
47
|
+
isRunning,
|
|
45
48
|
index
|
|
46
49
|
});
|
|
47
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_markdown_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_markdown_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"get_markdown_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_markdown_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAoB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAWzD;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CAC1B,IAAY,EACZ,OAAuB,EACvB,IAA0B,EAC1B,SAAiB,EACjB,OAAa,EACb,QAAgB,CAAC,CAAC,EAClB,SAAS,GAAG,aAAa,CAAC,IAAI;IAE9B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,QAAQ,GAAuB,EAAE,CAAC;IACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;QAChB,OAAO,CAAC,IAAI,CACV,+EAA+E,CAChF,CAAC;KACH;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;gBACjD,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,KAAK;gBACf,SAAS;gBACT,KAAK;aACN,CAAC,CAAC;SACJ;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,SAAS,GAAG,CAAC;gBACpB,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,KAAK;gBACf,SAAS;gBACT,KAAK;aACN,CAAC,CAAC;SACJ;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ISanitizer } from '@jupyterlab/apputils';
|
|
2
2
|
import { Cell } from '@jupyterlab/cells';
|
|
3
|
-
import { INotebookHeading } from '../../utils/headings';
|
|
3
|
+
import { INotebookHeading, RunningStatus } from '../../utils/headings';
|
|
4
4
|
import { INumberingDictionary } from '../../utils/numbering_dictionary';
|
|
5
5
|
/**
|
|
6
6
|
* Returns a "click" handler.
|
|
@@ -24,7 +24,7 @@ declare type onClickFactory = (el: Element) => () => void;
|
|
|
24
24
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
25
25
|
* @returns notebook heading
|
|
26
26
|
*/
|
|
27
|
-
declare function getRenderedHTMLHeadings(node: HTMLElement, onClick: onClickFactory, sanitizer: ISanitizer, dict: INumberingDictionary, lastLevel: number, numbering: boolean | undefined, numberingH1: boolean | undefined, cellRef: Cell, index?: number): INotebookHeading[];
|
|
27
|
+
declare function getRenderedHTMLHeadings(node: HTMLElement, onClick: onClickFactory, sanitizer: ISanitizer, dict: INumberingDictionary, lastLevel: number, numbering: boolean | undefined, numberingH1: boolean | undefined, cellRef: Cell, index?: number, isRunning?: RunningStatus): INotebookHeading[];
|
|
28
28
|
/**
|
|
29
29
|
* Exports.
|
|
30
30
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
import { generateNumbering } from '../../utils/generate_numbering';
|
|
4
|
+
import { RunningStatus } from '../../utils/headings';
|
|
4
5
|
import { sanitizerOptions } from '../../utils/sanitizer_options';
|
|
5
6
|
/**
|
|
6
7
|
* Returns a notebook heading from an HTML element.
|
|
@@ -16,7 +17,7 @@ import { sanitizerOptions } from '../../utils/sanitizer_options';
|
|
|
16
17
|
* @param index - index of referenced cell relative to other cells in the notebook
|
|
17
18
|
* @returns notebook heading
|
|
18
19
|
*/
|
|
19
|
-
function getRenderedHTMLHeadings(node, onClick, sanitizer, dict, lastLevel, numbering = false, numberingH1 = true, cellRef, index = -1) {
|
|
20
|
+
function getRenderedHTMLHeadings(node, onClick, sanitizer, dict, lastLevel, numbering = false, numberingH1 = true, cellRef, index = -1, isRunning = RunningStatus.Idle) {
|
|
20
21
|
let nodes = node.querySelectorAll('h1, h2, h3, h4, h5, h6, p');
|
|
21
22
|
if (index === -1) {
|
|
22
23
|
console.warn('Deprecation warning! index argument will become mandatory in the next version');
|
|
@@ -38,7 +39,8 @@ function getRenderedHTMLHeadings(node, onClick, sanitizer, dict, lastLevel, numb
|
|
|
38
39
|
type: 'markdown',
|
|
39
40
|
cellRef: cellRef,
|
|
40
41
|
hasChild: false,
|
|
41
|
-
index: index
|
|
42
|
+
index: index,
|
|
43
|
+
isRunning
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
continue;
|
|
@@ -68,7 +70,8 @@ function getRenderedHTMLHeadings(node, onClick, sanitizer, dict, lastLevel, numb
|
|
|
68
70
|
type: 'header',
|
|
69
71
|
cellRef: cellRef,
|
|
70
72
|
hasChild: false,
|
|
71
|
-
index: index
|
|
73
|
+
index: index,
|
|
74
|
+
isRunning
|
|
72
75
|
});
|
|
73
76
|
}
|
|
74
77
|
return headings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_rendered_html_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_rendered_html_heading.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAI3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"get_rendered_html_heading.js","sourceRoot":"","sources":["../../../src/generators/notebook/get_rendered_html_heading.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,6 @@ import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
|
7
7
|
/**
|
|
8
8
|
* Returns a ToC generator for notebooks.
|
|
9
9
|
*
|
|
10
|
-
* @private
|
|
11
10
|
* @param tracker - notebook tracker
|
|
12
11
|
* @param widget - table of contents widget
|
|
13
12
|
* @param sanitizer - HTML sanitizer
|
|
@@ -15,8 +14,4 @@ import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
|
15
14
|
* @param settings - advanced settings for toc extension
|
|
16
15
|
* @returns ToC generator capable of parsing notebooks
|
|
17
16
|
*/
|
|
18
|
-
declare function createNotebookGenerator(tracker: INotebookTracker, widget: TableOfContents, sanitizer: ISanitizer, translator?: ITranslator, settings?: ISettingRegistry.ISettings): Registry.IGenerator<NotebookPanel>;
|
|
19
|
-
/**
|
|
20
|
-
* Exports.
|
|
21
|
-
*/
|
|
22
|
-
export { createNotebookGenerator };
|
|
17
|
+
export declare function createNotebookGenerator(tracker: INotebookTracker, widget: TableOfContents, sanitizer: ISanitizer, translator?: ITranslator, settings?: ISettingRegistry.ISettings): Registry.IGenerator<NotebookPanel>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Jupyter Development Team.
|
|
2
2
|
// Distributed under the terms of the Modified BSD License.
|
|
3
3
|
import { MARKDOWN_HEADING_COLLAPSED } from '@jupyterlab/cells';
|
|
4
|
+
import { NotebookActions } from '@jupyterlab/notebook';
|
|
4
5
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
5
6
|
import { isDOM } from '../../utils/is_dom';
|
|
6
7
|
import { isMarkdown } from '../../utils/is_markdown';
|
|
@@ -13,10 +14,10 @@ import { getRenderedHTMLHeadings } from './get_rendered_html_heading';
|
|
|
13
14
|
import { OptionsManager } from './options_manager';
|
|
14
15
|
import { render } from './render';
|
|
15
16
|
import { toolbar } from './toolbar_generator';
|
|
17
|
+
import { RunningStatus } from '../../utils/headings';
|
|
16
18
|
/**
|
|
17
19
|
* Returns a ToC generator for notebooks.
|
|
18
20
|
*
|
|
19
|
-
* @private
|
|
20
21
|
* @param tracker - notebook tracker
|
|
21
22
|
* @param widget - table of contents widget
|
|
22
23
|
* @param sanitizer - HTML sanitizer
|
|
@@ -24,71 +25,97 @@ import { toolbar } from './toolbar_generator';
|
|
|
24
25
|
* @param settings - advanced settings for toc extension
|
|
25
26
|
* @returns ToC generator capable of parsing notebooks
|
|
26
27
|
*/
|
|
27
|
-
function createNotebookGenerator(tracker, widget, sanitizer, translator, settings) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
28
|
+
export function createNotebookGenerator(tracker, widget, sanitizer, translator, settings) {
|
|
29
|
+
return new NotebookGenerator(tracker, widget, sanitizer, translator, settings);
|
|
30
|
+
}
|
|
31
|
+
class NotebookGenerator {
|
|
32
|
+
/**
|
|
33
|
+
* Notebook Table of Content Generator constructor
|
|
34
|
+
*
|
|
35
|
+
* @param tracker - notebook tracker
|
|
36
|
+
* @param widget - table of contents widget
|
|
37
|
+
* @param sanitizer - HTML sanitizer
|
|
38
|
+
* @param translator - Language translator
|
|
39
|
+
* @param settings - advanced settings for toc extension
|
|
40
|
+
*/
|
|
41
|
+
constructor(tracker, widget, sanitizer, translator, settings) {
|
|
42
|
+
/**
|
|
43
|
+
* Renders a table of contents item.
|
|
44
|
+
*
|
|
45
|
+
* @param item - heading to render
|
|
46
|
+
* @param toc - list of all headers to render
|
|
47
|
+
* @returns rendered item
|
|
48
|
+
*/
|
|
49
|
+
this.itemRenderer = (item, toc = []) => {
|
|
50
|
+
return render(this.options, this.tracker, this.widget, item, toc);
|
|
51
|
+
};
|
|
52
|
+
this.sanitizer = sanitizer;
|
|
53
|
+
this.tracker = tracker;
|
|
54
|
+
this.widget = widget;
|
|
55
|
+
this._runningCells = new Array();
|
|
56
|
+
let numberingH1 = true;
|
|
57
|
+
let includeOutput = true;
|
|
58
|
+
let syncCollapseState = false;
|
|
59
|
+
if (settings) {
|
|
60
|
+
numberingH1 = settings.composite.numberingH1;
|
|
61
|
+
includeOutput = settings.composite.includeOutput;
|
|
62
|
+
syncCollapseState = settings.composite.syncCollapseState;
|
|
63
|
+
}
|
|
64
|
+
const options = (this.options = new OptionsManager(widget, tracker, {
|
|
65
|
+
numbering: false,
|
|
66
|
+
numberingH1: numberingH1,
|
|
67
|
+
includeOutput: includeOutput,
|
|
68
|
+
syncCollapseState: syncCollapseState,
|
|
69
|
+
sanitizer: sanitizer,
|
|
70
|
+
translator: translator || nullTranslator
|
|
71
|
+
}));
|
|
72
|
+
if (settings) {
|
|
73
|
+
settings.changed.connect(() => {
|
|
74
|
+
options.numberingH1 = settings.composite.numberingH1;
|
|
75
|
+
options.includeOutput = settings.composite.includeOutput;
|
|
76
|
+
options.syncCollapseState = settings.composite
|
|
77
|
+
.syncCollapseState;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
tracker.activeCellChanged.connect((sender, args) => {
|
|
81
|
+
widget.update();
|
|
82
|
+
});
|
|
83
|
+
NotebookActions.executionScheduled.connect((_, args) => {
|
|
84
|
+
if (!this._runningCells.includes(args.cell)) {
|
|
85
|
+
this._runningCells.push(args.cell);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
NotebookActions.executed.connect((_, args) => {
|
|
89
|
+
this._runningCells.forEach((cell, index) => {
|
|
90
|
+
if (cell === args.cell) {
|
|
91
|
+
this._runningCells.splice(index, 1);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
50
94
|
});
|
|
51
95
|
}
|
|
52
|
-
tracker.activeCellChanged.connect((sender, args) => {
|
|
53
|
-
widget.update();
|
|
54
|
-
});
|
|
55
|
-
return {
|
|
56
|
-
tracker,
|
|
57
|
-
usesLatex: true,
|
|
58
|
-
options: options,
|
|
59
|
-
toolbarGenerator: generateToolbar,
|
|
60
|
-
itemRenderer: renderItem,
|
|
61
|
-
generate: generate,
|
|
62
|
-
collapseChanged: options.collapseChanged
|
|
63
|
-
};
|
|
64
96
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* @private
|
|
68
|
-
* @returns toolbar generator
|
|
97
|
+
* Signal to indicate that a collapse event happened to this heading
|
|
98
|
+
* within the ToC.
|
|
69
99
|
*/
|
|
70
|
-
|
|
71
|
-
return
|
|
100
|
+
get collapseChanged() {
|
|
101
|
+
return this.options.collapseChanged;
|
|
72
102
|
}
|
|
73
103
|
/**
|
|
74
|
-
*
|
|
104
|
+
* Returns a toolbar generator.
|
|
75
105
|
*
|
|
76
|
-
* @
|
|
77
|
-
* @param item - heading to render
|
|
78
|
-
* @param toc - list of all headers to render
|
|
79
|
-
* @returns rendered item
|
|
106
|
+
* @returns toolbar generator
|
|
80
107
|
*/
|
|
81
|
-
|
|
82
|
-
return
|
|
108
|
+
toolbarGenerator() {
|
|
109
|
+
return toolbar(this.options, this.tracker);
|
|
83
110
|
}
|
|
84
111
|
/**
|
|
85
112
|
* Generates a table of contents.
|
|
86
113
|
*
|
|
87
|
-
* @private
|
|
88
114
|
* @param panel - notebook widget
|
|
89
115
|
* @returns a list of headings
|
|
90
116
|
*/
|
|
91
|
-
|
|
117
|
+
generate(panel) {
|
|
118
|
+
var _a;
|
|
92
119
|
let headings = [];
|
|
93
120
|
let collapseLevel = -1;
|
|
94
121
|
let dict = {};
|
|
@@ -98,92 +125,101 @@ function createNotebookGenerator(tracker, widget, sanitizer, translator, setting
|
|
|
98
125
|
for (let i = 0; i < panel.content.widgets.length; i++) {
|
|
99
126
|
let cell = panel.content.widgets[i];
|
|
100
127
|
let model = cell.model;
|
|
101
|
-
let cellCollapseMetadata = options.syncCollapseState
|
|
128
|
+
let cellCollapseMetadata = this.options.syncCollapseState
|
|
102
129
|
? MARKDOWN_HEADING_COLLAPSED
|
|
103
130
|
: 'toc-hr-collapsed';
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
131
|
+
const collapsed = (_a = model.metadata.get(cellCollapseMetadata)) !== null && _a !== void 0 ? _a : false;
|
|
132
|
+
const isRunning = this._runningCells.includes(cell)
|
|
133
|
+
? this._runningCells[0] === cell
|
|
134
|
+
? RunningStatus.Running
|
|
135
|
+
: RunningStatus.Scheduled
|
|
136
|
+
: RunningStatus.Idle;
|
|
137
|
+
switch (model.type) {
|
|
138
|
+
case 'code': {
|
|
139
|
+
if (!this.widget || (this.widget && this.options.showCode)) {
|
|
140
|
+
const onClick = (line) => {
|
|
141
|
+
return () => {
|
|
142
|
+
panel.content.activeCellIndex = i;
|
|
143
|
+
cell.node.scrollIntoView();
|
|
144
|
+
};
|
|
112
145
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
146
|
+
const count = cell.model.executionCount;
|
|
147
|
+
const executionIndicator = count !== null && count !== void 0 ? count : (isRunning !== RunningStatus.Idle ? '*' : ' ');
|
|
148
|
+
let executionCount = `[${executionIndicator}]: `;
|
|
149
|
+
let heading = getCodeCellHeading(model.value.text, onClick, executionCount, getLastHeadingLevel(headings), cell, i, isRunning);
|
|
150
|
+
[headings, prev] = appendHeading(headings, heading, prev, collapseLevel, this.options.filtered);
|
|
151
|
+
}
|
|
152
|
+
if (this.options.includeOutput) {
|
|
153
|
+
// Iterate over the code cell outputs to check for Markdown or HTML from which we can generate ToC headings...
|
|
154
|
+
for (let j = 0; j < model.outputs.length; j++) {
|
|
155
|
+
const m = model.outputs.get(j);
|
|
156
|
+
let dtypes = Object.keys(m.data);
|
|
157
|
+
dtypes = dtypes.filter(t => isMarkdown(t) || isDOM(t));
|
|
158
|
+
if (!dtypes.length) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
const onClick = (el) => {
|
|
162
|
+
return () => {
|
|
163
|
+
panel.content.activeCellIndex = i;
|
|
164
|
+
panel.content.mode = 'command';
|
|
165
|
+
el.scrollIntoView();
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
let htmlHeadings = getRenderedHTMLHeadings(cell.outputArea.widgets[j].node, onClick, this.sanitizer, dict, getLastHeadingLevel(headings), this.options.numbering, this.options.numberingH1, cell, i, isRunning);
|
|
169
|
+
for (const heading of htmlHeadings) {
|
|
170
|
+
[headings, prev, collapseLevel] = appendMarkdownHeading(heading, headings, prev, collapseLevel, this.options.filtered, collapsed, this.options.showMarkdown, cellCollapseMetadata);
|
|
171
|
+
}
|
|
127
172
|
}
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
case 'markdown': {
|
|
177
|
+
let mcell = cell;
|
|
178
|
+
let heading;
|
|
179
|
+
let lastLevel = getLastHeadingLevel(headings);
|
|
180
|
+
// If the cell is rendered, generate the ToC items from the HTML...
|
|
181
|
+
if (mcell.rendered && !mcell.inputHidden) {
|
|
128
182
|
const onClick = (el) => {
|
|
129
183
|
return () => {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
184
|
+
if (!mcell.rendered) {
|
|
185
|
+
panel.content.activeCellIndex = i;
|
|
186
|
+
el.scrollIntoView();
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
panel.content.mode = 'command';
|
|
190
|
+
cell.node.scrollIntoView();
|
|
191
|
+
panel.content.activeCellIndex = i;
|
|
192
|
+
}
|
|
133
193
|
};
|
|
134
194
|
};
|
|
135
|
-
|
|
136
|
-
for (
|
|
137
|
-
[headings, prev, collapseLevel] = appendMarkdownHeading(heading, headings, prev, collapseLevel, options.filtered, collapsed, options.showMarkdown, cellCollapseMetadata);
|
|
195
|
+
const htmlHeadings = getRenderedHTMLHeadings(cell.node, onClick, this.sanitizer, dict, lastLevel, this.options.numbering, this.options.numberingH1, cell, i, isRunning);
|
|
196
|
+
for (heading of htmlHeadings) {
|
|
197
|
+
[headings, prev, collapseLevel] = appendMarkdownHeading(heading, headings, prev, collapseLevel, this.options.filtered, collapsed, this.options.showMarkdown, cellCollapseMetadata);
|
|
138
198
|
}
|
|
199
|
+
// If not rendered, generate ToC items from the cell text...
|
|
139
200
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (model.type === 'markdown') {
|
|
144
|
-
let mcell = cell;
|
|
145
|
-
let heading;
|
|
146
|
-
let lastLevel = getLastHeadingLevel(headings);
|
|
147
|
-
// If the cell is rendered, generate the ToC items from the HTML...
|
|
148
|
-
if (mcell.rendered && !mcell.inputHidden) {
|
|
149
|
-
const onClick = (el) => {
|
|
150
|
-
return () => {
|
|
151
|
-
if (!mcell.rendered) {
|
|
201
|
+
else {
|
|
202
|
+
const onClick = (line) => {
|
|
203
|
+
return () => {
|
|
152
204
|
panel.content.activeCellIndex = i;
|
|
153
|
-
el.scrollIntoView();
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
panel.content.mode = 'command';
|
|
157
205
|
cell.node.scrollIntoView();
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
};
|
|
162
|
-
const htmlHeadings = getRenderedHTMLHeadings(cell.node, onClick, sanitizer, dict, lastLevel, options.numbering, options.numberingH1, cell, i);
|
|
163
|
-
for (heading of htmlHeadings) {
|
|
164
|
-
[headings, prev, collapseLevel] = appendMarkdownHeading(heading, headings, prev, collapseLevel, options.filtered, collapsed, options.showMarkdown, cellCollapseMetadata);
|
|
165
|
-
}
|
|
166
|
-
// If not rendered, generate ToC items from the cell text...
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
const onClick = (line) => {
|
|
170
|
-
return () => {
|
|
171
|
-
panel.content.activeCellIndex = i;
|
|
172
|
-
cell.node.scrollIntoView();
|
|
206
|
+
};
|
|
173
207
|
};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
208
|
+
const markdownHeadings = getMarkdownHeadings(model.value.text, onClick, dict, lastLevel, cell, i, isRunning);
|
|
209
|
+
for (heading of markdownHeadings) {
|
|
210
|
+
[headings, prev, collapseLevel] = appendMarkdownHeading(heading, headings, prev, collapseLevel, this.options.filtered, collapsed, this.options.showMarkdown, cellCollapseMetadata);
|
|
211
|
+
}
|
|
178
212
|
}
|
|
213
|
+
break;
|
|
179
214
|
}
|
|
180
215
|
}
|
|
216
|
+
// Must be done afterwards as `heading.hasChild` needs to be up to date.
|
|
217
|
+
const lastHeading = headings[headings.length - 1];
|
|
218
|
+
if (lastHeading) {
|
|
219
|
+
lastHeading.isRunning = Math.max(lastHeading.isRunning, isRunning);
|
|
220
|
+
}
|
|
181
221
|
}
|
|
182
222
|
return headings;
|
|
183
223
|
}
|
|
184
224
|
}
|
|
185
|
-
/**
|
|
186
|
-
* Exports.
|
|
187
|
-
*/
|
|
188
|
-
export { createNotebookGenerator };
|
|
189
225
|
//# sourceMappingURL=index.js.map
|