@jupyterlab/toc-extension 5.2.0 → 5.2.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/index.js +64 -32
- package/lib/index.js.map +1 -1
- package/package.json +12 -11
- package/style/index.css +1 -0
- package/style/index.js +1 -0
package/lib/index.js
CHANGED
|
@@ -14,7 +14,7 @@ import { ISettingRegistry } from '@jupyterlab/settingregistry';
|
|
|
14
14
|
import { createLatexGenerator, createMarkdownGenerator, createNotebookGenerator, createPythonGenerator, createRenderedMarkdownGenerator, ITableOfContentsRegistry, TableOfContentsRegistry as Registry, TableOfContents } from '@jupyterlab/toc';
|
|
15
15
|
import { ITranslator } from '@jupyterlab/translation';
|
|
16
16
|
import { tocIcon } from '@jupyterlab/ui-components';
|
|
17
|
-
import {
|
|
17
|
+
import { CodeCell, MarkdownCell } from '@jupyterlab/cells';
|
|
18
18
|
/**
|
|
19
19
|
* The command IDs used by TOC item.
|
|
20
20
|
*/
|
|
@@ -28,17 +28,17 @@ var CommandIDs;
|
|
|
28
28
|
* @private
|
|
29
29
|
* @param app - Jupyter application
|
|
30
30
|
* @param docmanager - document manager
|
|
31
|
+
* @param rendermime - rendered MIME registry
|
|
32
|
+
* @param translator - translator
|
|
31
33
|
* @param editorTracker - editor tracker
|
|
32
|
-
* @param labShell - Jupyter lab shell
|
|
33
34
|
* @param restorer - application layout restorer
|
|
35
|
+
* @param labShell - Jupyter lab shell
|
|
34
36
|
* @param markdownViewerTracker - Markdown viewer tracker
|
|
35
37
|
* @param notebookTracker - notebook tracker
|
|
36
|
-
* @param rendermime - rendered MIME registry
|
|
37
|
-
* @param translator - translator
|
|
38
38
|
* @param settingRegistry - setting registry
|
|
39
39
|
* @returns table of contents registry
|
|
40
40
|
*/
|
|
41
|
-
async function activateTOC(app, docmanager,
|
|
41
|
+
async function activateTOC(app, docmanager, rendermime, translator, editorTracker, restorer, labShell, markdownViewerTracker, notebookTracker, settingRegistry) {
|
|
42
42
|
const trans = translator.load('jupyterlab');
|
|
43
43
|
// Create the ToC widget:
|
|
44
44
|
const toc = new TableOfContents({
|
|
@@ -54,19 +54,45 @@ async function activateTOC(app, docmanager, editorTracker, labShell, restorer, m
|
|
|
54
54
|
toc.id = 'table-of-contents';
|
|
55
55
|
toc.node.setAttribute('role', 'region');
|
|
56
56
|
toc.node.setAttribute('aria-label', trans.__('Table of Contents section'));
|
|
57
|
-
|
|
57
|
+
app.shell.add(toc, 'left', { rank: 400 });
|
|
58
58
|
app.commands.addCommand(CommandIDs.runCells, {
|
|
59
59
|
execute: args => {
|
|
60
|
-
|
|
60
|
+
if (!notebookTracker) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const panel = notebookTracker.currentWidget;
|
|
64
|
+
if (panel == null) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const cells = panel.content.widgets;
|
|
68
|
+
if (cells === undefined) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const activeCell = toc.activeEntry.cellRef;
|
|
72
|
+
if (activeCell instanceof MarkdownCell) {
|
|
73
|
+
let level = activeCell.headingInfo.level;
|
|
74
|
+
for (let i = cells.indexOf(activeCell) + 1; i < cells.length; i++) {
|
|
75
|
+
const cell = cells[i];
|
|
76
|
+
if (cell instanceof MarkdownCell && cell.headingInfo.level <= level) {
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
if (cell instanceof CodeCell) {
|
|
80
|
+
void CodeCell.execute(cell, panel.sessionContext);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (activeCell instanceof CodeCell) {
|
|
86
|
+
void CodeCell.execute(activeCell, panel.sessionContext);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
61
89
|
},
|
|
62
90
|
label: trans.__('Run Cell(s)')
|
|
63
91
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
// Add the ToC widget to the application restorer:
|
|
69
|
-
restorer.add(toc, '@jupyterlab/toc:plugin');
|
|
92
|
+
if (restorer) {
|
|
93
|
+
// Add the ToC widget to the application restorer:
|
|
94
|
+
restorer.add(toc, '@jupyterlab/toc:plugin');
|
|
95
|
+
}
|
|
70
96
|
// Attempt to load plugin settings:
|
|
71
97
|
let settings;
|
|
72
98
|
if (settingRegistry) {
|
|
@@ -78,22 +104,30 @@ async function activateTOC(app, docmanager, editorTracker, labShell, restorer, m
|
|
|
78
104
|
}
|
|
79
105
|
}
|
|
80
106
|
// Create a notebook generator:
|
|
81
|
-
|
|
82
|
-
|
|
107
|
+
if (notebookTracker) {
|
|
108
|
+
const notebookGenerator = createNotebookGenerator(notebookTracker, toc, rendermime.sanitizer, translator, settings);
|
|
109
|
+
registry.add(notebookGenerator);
|
|
110
|
+
}
|
|
83
111
|
// Create a Markdown generator:
|
|
84
|
-
|
|
85
|
-
|
|
112
|
+
if (editorTracker) {
|
|
113
|
+
const markdownGenerator = createMarkdownGenerator(editorTracker, toc, rendermime.sanitizer, translator, settings);
|
|
114
|
+
registry.add(markdownGenerator);
|
|
115
|
+
// Create a LaTeX generator:
|
|
116
|
+
const latexGenerator = createLatexGenerator(editorTracker);
|
|
117
|
+
registry.add(latexGenerator);
|
|
118
|
+
// Create a Python generator:
|
|
119
|
+
const pythonGenerator = createPythonGenerator(editorTracker);
|
|
120
|
+
registry.add(pythonGenerator);
|
|
121
|
+
}
|
|
86
122
|
// Create a rendered Markdown generator:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
registry.add(latexGenerator);
|
|
92
|
-
// Create a Python generator:
|
|
93
|
-
const pythonGenerator = createPythonGenerator(editorTracker);
|
|
94
|
-
registry.add(pythonGenerator);
|
|
123
|
+
if (markdownViewerTracker) {
|
|
124
|
+
const renderedMarkdownGenerator = createRenderedMarkdownGenerator(markdownViewerTracker, toc, rendermime.sanitizer, translator, settings);
|
|
125
|
+
registry.add(renderedMarkdownGenerator);
|
|
126
|
+
}
|
|
95
127
|
// Update the ToC when the active widget changes:
|
|
96
|
-
labShell
|
|
128
|
+
if (labShell) {
|
|
129
|
+
labShell.currentChanged.connect(onConnect);
|
|
130
|
+
}
|
|
97
131
|
return registry;
|
|
98
132
|
/**
|
|
99
133
|
* Callback invoked when the active widget changes.
|
|
@@ -126,17 +160,15 @@ const extension = {
|
|
|
126
160
|
id: '@jupyterlab/toc:plugin',
|
|
127
161
|
autoStart: true,
|
|
128
162
|
provides: ITableOfContentsRegistry,
|
|
129
|
-
requires: [
|
|
130
|
-
|
|
163
|
+
requires: [IDocumentManager, IRenderMimeRegistry, ITranslator],
|
|
164
|
+
optional: [
|
|
131
165
|
IEditorTracker,
|
|
132
|
-
ILabShell,
|
|
133
166
|
ILayoutRestorer,
|
|
167
|
+
ILabShell,
|
|
134
168
|
IMarkdownViewerTracker,
|
|
135
169
|
INotebookTracker,
|
|
136
|
-
|
|
137
|
-
ITranslator
|
|
170
|
+
ISettingRegistry
|
|
138
171
|
],
|
|
139
|
-
optional: [ISettingRegistry],
|
|
140
172
|
activate: activateTOC
|
|
141
173
|
};
|
|
142
174
|
/**
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAC3D;;;GAGG;AAEH,OAAO,EACL,SAAS,EACT,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,uBAAuB,IAAI,QAAQ,EACnC,eAAe,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/toc-extension",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.4",
|
|
4
4
|
"description": "JupyterLab - Table of Contents widget extension",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -40,16 +40,17 @@
|
|
|
40
40
|
"watch": "tsc -b --watch"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@jupyterlab/application": "^3.2.
|
|
44
|
-
"@jupyterlab/
|
|
45
|
-
"@jupyterlab/
|
|
46
|
-
"@jupyterlab/
|
|
47
|
-
"@jupyterlab/
|
|
48
|
-
"@jupyterlab/
|
|
49
|
-
"@jupyterlab/
|
|
50
|
-
"@jupyterlab/
|
|
51
|
-
"@jupyterlab/
|
|
52
|
-
"@jupyterlab/
|
|
43
|
+
"@jupyterlab/application": "^3.2.4",
|
|
44
|
+
"@jupyterlab/cells": "^3.2.4",
|
|
45
|
+
"@jupyterlab/docmanager": "^3.2.4",
|
|
46
|
+
"@jupyterlab/fileeditor": "^3.2.4",
|
|
47
|
+
"@jupyterlab/markdownviewer": "^3.2.4",
|
|
48
|
+
"@jupyterlab/notebook": "^3.2.4",
|
|
49
|
+
"@jupyterlab/rendermime": "^3.2.4",
|
|
50
|
+
"@jupyterlab/settingregistry": "^3.2.4",
|
|
51
|
+
"@jupyterlab/toc": "^5.2.4",
|
|
52
|
+
"@jupyterlab/translation": "^3.2.4",
|
|
53
|
+
"@jupyterlab/ui-components": "^3.2.4"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"rimraf": "~3.0.0",
|
package/style/index.css
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
@import url('~@jupyterlab/rendermime/style/index.css');
|
|
9
9
|
@import url('~@jupyterlab/application/style/index.css');
|
|
10
10
|
@import url('~@jupyterlab/docmanager/style/index.css');
|
|
11
|
+
@import url('~@jupyterlab/cells/style/index.css');
|
|
11
12
|
@import url('~@jupyterlab/fileeditor/style/index.css');
|
|
12
13
|
@import url('~@jupyterlab/markdownviewer/style/index.css');
|
|
13
14
|
@import url('~@jupyterlab/notebook/style/index.css');
|
package/style/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import '@jupyterlab/ui-components/style/index.js';
|
|
|
8
8
|
import '@jupyterlab/rendermime/style/index.js';
|
|
9
9
|
import '@jupyterlab/application/style/index.js';
|
|
10
10
|
import '@jupyterlab/docmanager/style/index.js';
|
|
11
|
+
import '@jupyterlab/cells/style/index.js';
|
|
11
12
|
import '@jupyterlab/fileeditor/style/index.js';
|
|
12
13
|
import '@jupyterlab/markdownviewer/style/index.js';
|
|
13
14
|
import '@jupyterlab/notebook/style/index.js';
|