@jupyterlab/toc 5.4.3 → 6.0.0-alpha.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/factory.d.ts +42 -0
- package/lib/factory.js +73 -0
- package/lib/factory.js.map +1 -0
- package/lib/index.d.ts +9 -4
- package/lib/index.js +10 -5
- package/lib/index.js.map +1 -1
- package/lib/model.d.ts +123 -0
- package/lib/model.js +226 -0
- package/lib/model.js.map +1 -0
- package/lib/panel.d.ts +26 -0
- package/lib/panel.js +89 -0
- package/lib/panel.js.map +1 -0
- package/lib/registry.d.ts +11 -119
- package/lib/registry.js +17 -32
- package/lib/registry.js.map +1 -1
- package/lib/tocitem.d.ts +34 -0
- package/lib/tocitem.js +34 -0
- package/lib/tocitem.js.map +1 -0
- package/lib/toctree.d.ts +40 -0
- package/lib/toctree.js +43 -0
- package/lib/toctree.js.map +1 -0
- package/lib/tokens.d.ts +235 -0
- package/lib/tokens.js +29 -0
- package/lib/tokens.js.map +1 -0
- package/lib/tracker.d.ts +26 -0
- package/lib/tracker.js +33 -0
- package/lib/tracker.js.map +1 -0
- package/lib/treeview.d.ts +20 -0
- package/lib/treeview.js +35 -0
- package/lib/treeview.js.map +1 -0
- package/lib/utils/common.d.ts +65 -0
- package/lib/utils/common.js +158 -0
- package/lib/utils/common.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/{numbering_dictionary.js → index.js} +3 -2
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/markdown.d.ts +46 -0
- package/lib/utils/markdown.js +200 -0
- package/lib/utils/markdown.js.map +1 -0
- package/package.json +17 -24
- package/style/base.css +45 -383
- package/style/index.css +0 -5
- package/style/index.js +0 -5
- package/lib/generators/index.d.ts +0 -4
- package/lib/generators/index.js +0 -8
- package/lib/generators/index.js.map +0 -1
- package/lib/generators/latex/index.d.ts +0 -15
- package/lib/generators/latex/index.js +0 -111
- package/lib/generators/latex/index.js.map +0 -1
- package/lib/generators/markdown/get_headings.d.ts +0 -25
- package/lib/generators/markdown/get_headings.js +0 -51
- package/lib/generators/markdown/get_headings.js.map +0 -1
- package/lib/generators/markdown/get_rendered_headings.d.ts +0 -19
- package/lib/generators/markdown/get_rendered_headings.js +0 -68
- package/lib/generators/markdown/get_rendered_headings.js.map +0 -1
- package/lib/generators/markdown/index.d.ts +0 -34
- package/lib/generators/markdown/index.js +0 -176
- package/lib/generators/markdown/index.js.map +0 -1
- package/lib/generators/markdown/options_manager.d.ts +0 -74
- package/lib/generators/markdown/options_manager.js +0 -65
- package/lib/generators/markdown/options_manager.js.map +0 -1
- package/lib/generators/markdown/render.d.ts +0 -16
- package/lib/generators/markdown/render.js +0 -34
- package/lib/generators/markdown/render.js.map +0 -1
- package/lib/generators/markdown/toolbar_generator.d.ts +0 -66
- package/lib/generators/markdown/toolbar_generator.js +0 -49
- package/lib/generators/markdown/toolbar_generator.js.map +0 -1
- package/lib/generators/notebook/append_collapsible_heading.d.ts +0 -19
- package/lib/generators/notebook/append_collapsible_heading.js +0 -63
- package/lib/generators/notebook/append_collapsible_heading.js.map +0 -1
- package/lib/generators/notebook/append_heading.d.ts +0 -13
- package/lib/generators/notebook/append_heading.js +0 -33
- package/lib/generators/notebook/append_heading.js.map +0 -1
- package/lib/generators/notebook/append_markdown_heading.d.ts +0 -20
- package/lib/generators/notebook/append_markdown_heading.js +0 -33
- package/lib/generators/notebook/append_markdown_heading.js.map +0 -1
- package/lib/generators/notebook/codemirror.d.ts +0 -57
- package/lib/generators/notebook/codemirror.js +0 -46
- package/lib/generators/notebook/codemirror.js.map +0 -1
- package/lib/generators/notebook/get_code_cell_heading.d.ts +0 -27
- package/lib/generators/notebook/get_code_cell_heading.js +0 -48
- package/lib/generators/notebook/get_code_cell_heading.js.map +0 -1
- package/lib/generators/notebook/get_last_heading_level.d.ts +0 -13
- package/lib/generators/notebook/get_last_heading_level.js +0 -26
- package/lib/generators/notebook/get_last_heading_level.js.map +0 -1
- package/lib/generators/notebook/get_markdown_heading.d.ts +0 -27
- package/lib/generators/notebook/get_markdown_heading.js +0 -60
- package/lib/generators/notebook/get_markdown_heading.js.map +0 -1
- package/lib/generators/notebook/get_rendered_html_heading.d.ts +0 -31
- package/lib/generators/notebook/get_rendered_html_heading.js +0 -83
- package/lib/generators/notebook/get_rendered_html_heading.js.map +0 -1
- package/lib/generators/notebook/index.d.ts +0 -17
- package/lib/generators/notebook/index.js +0 -225
- package/lib/generators/notebook/index.js.map +0 -1
- package/lib/generators/notebook/is_heading_filtered.d.ts +0 -14
- package/lib/generators/notebook/is_heading_filtered.js +0 -35
- package/lib/generators/notebook/is_heading_filtered.js.map +0 -1
- package/lib/generators/notebook/options_manager.d.ts +0 -163
- package/lib/generators/notebook/options_manager.js +0 -210
- package/lib/generators/notebook/options_manager.js.map +0 -1
- package/lib/generators/notebook/render.d.ts +0 -15
- package/lib/generators/notebook/render.js +0 -161
- package/lib/generators/notebook/render.js.map +0 -1
- package/lib/generators/notebook/tagstool/index.d.ts +0 -111
- package/lib/generators/notebook/tagstool/index.js +0 -189
- package/lib/generators/notebook/tagstool/index.js.map +0 -1
- package/lib/generators/notebook/tagstool/tag.d.ts +0 -47
- package/lib/generators/notebook/tagstool/tag.js +0 -34
- package/lib/generators/notebook/tagstool/tag.js.map +0 -1
- package/lib/generators/notebook/tagstool/tag_list.d.ts +0 -70
- package/lib/generators/notebook/tagstool/tag_list.js +0 -70
- package/lib/generators/notebook/tagstool/tag_list.js.map +0 -1
- package/lib/generators/notebook/toolbar_generator.d.ts +0 -112
- package/lib/generators/notebook/toolbar_generator.js +0 -151
- package/lib/generators/notebook/toolbar_generator.js.map +0 -1
- package/lib/generators/python/index.d.ts +0 -15
- package/lib/generators/python/index.js +0 -91
- package/lib/generators/python/index.js.map +0 -1
- package/lib/generators/python/render.d.ts +0 -14
- package/lib/generators/python/render.js +0 -25
- package/lib/generators/python/render.js.map +0 -1
- package/lib/toc.d.ts +0 -100
- package/lib/toc.js +0 -163
- package/lib/toc.js.map +0 -1
- package/lib/toc_item.d.ts +0 -55
- package/lib/toc_item.js +0 -41
- package/lib/toc_item.js.map +0 -1
- package/lib/toc_tree.d.ts +0 -61
- package/lib/toc_tree.js +0 -31
- package/lib/toc_tree.js.map +0 -1
- package/lib/utils/generate_numbering.d.ts +0 -14
- package/lib/utils/generate_numbering.js +0 -57
- package/lib/utils/generate_numbering.js.map +0 -1
- package/lib/utils/headings.d.ts +0 -93
- package/lib/utils/headings.js +0 -30
- package/lib/utils/headings.js.map +0 -1
- package/lib/utils/is_dom.d.ts +0 -20
- package/lib/utils/is_dom.js +0 -25
- package/lib/utils/is_dom.js.map +0 -1
- package/lib/utils/is_markdown.d.ts +0 -20
- package/lib/utils/is_markdown.js +0 -28
- package/lib/utils/is_markdown.js.map +0 -1
- package/lib/utils/numbering_dictionary.d.ts +0 -15
- package/lib/utils/numbering_dictionary.js.map +0 -1
- package/lib/utils/parse_heading.d.ts +0 -75
- package/lib/utils/parse_heading.js +0 -91
- package/lib/utils/parse_heading.js.map +0 -1
- package/lib/utils/sanitizer_options.d.ts +0 -23
- package/lib/utils/sanitizer_options.js +0 -45
- package/lib/utils/sanitizer_options.js.map +0 -1
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Jupyter Development Team.
|
|
2
|
-
// Distributed under the terms of the Modified BSD License.
|
|
3
|
-
import { codeIcon, markdownIcon, numberingIcon, tagIcon } from '@jupyterlab/ui-components';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import { TagsToolComponent } from './tagstool';
|
|
6
|
-
/**
|
|
7
|
-
* Returns a component for rendering a notebook table of contents toolbar.
|
|
8
|
-
*
|
|
9
|
-
* @private
|
|
10
|
-
* @param options - generator options
|
|
11
|
-
* @param tracker - notebook tracker
|
|
12
|
-
* @returns toolbar component
|
|
13
|
-
*/
|
|
14
|
-
function toolbar(options, tracker) {
|
|
15
|
-
return class Toolbar extends React.Component {
|
|
16
|
-
/**
|
|
17
|
-
* Returns a component for rendering a notebook table of contents toolbar.
|
|
18
|
-
*
|
|
19
|
-
* @param props - toolbar properties
|
|
20
|
-
* @returns toolbar component
|
|
21
|
-
*/
|
|
22
|
-
constructor(props) {
|
|
23
|
-
super(props);
|
|
24
|
-
this._trans = options.translator.load('jupyterlab');
|
|
25
|
-
this.tagTool = null;
|
|
26
|
-
this.state = {
|
|
27
|
-
showCode: true,
|
|
28
|
-
showMarkdown: false,
|
|
29
|
-
showTags: false,
|
|
30
|
-
numbering: false
|
|
31
|
-
};
|
|
32
|
-
if (tracker.currentWidget) {
|
|
33
|
-
// Read saved user settings in notebook meta data:
|
|
34
|
-
void tracker.currentWidget.context.ready.then(() => {
|
|
35
|
-
if (tracker.currentWidget) {
|
|
36
|
-
tracker.currentWidget.content.activeCellChanged.connect(() => {
|
|
37
|
-
options.updateWidget();
|
|
38
|
-
});
|
|
39
|
-
const numbering = tracker.currentWidget.model.metadata.get('toc-autonumbering');
|
|
40
|
-
const showCode = tracker.currentWidget.model.metadata.get('toc-showcode');
|
|
41
|
-
const showMarkdown = tracker.currentWidget.model.metadata.get('toc-showmarkdowntxt');
|
|
42
|
-
const showTags = tracker.currentWidget.model.metadata.get('toc-showtags');
|
|
43
|
-
options.initializeOptions(numbering || options.numbering, options.numberingH1, options.includeOutput, options.syncCollapseState, showCode || options.showCode, showMarkdown || options.showMarkdown, showTags || options.showTags);
|
|
44
|
-
this.setState({
|
|
45
|
-
showCode: options.showCode,
|
|
46
|
-
showMarkdown: options.showMarkdown,
|
|
47
|
-
showTags: options.showTags,
|
|
48
|
-
numbering: options.numbering
|
|
49
|
-
});
|
|
50
|
-
this.tags = [];
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Toggle whether to show code previews.
|
|
57
|
-
*/
|
|
58
|
-
toggleCode() {
|
|
59
|
-
options.showCode = !options.showCode;
|
|
60
|
-
this.setState({ showCode: options.showCode });
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Toggle whether to show Markdown previews.
|
|
64
|
-
*/
|
|
65
|
-
toggleMarkdown() {
|
|
66
|
-
options.showMarkdown = !options.showMarkdown;
|
|
67
|
-
this.setState({ showMarkdown: options.showMarkdown });
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Toggle whether to number headings.
|
|
71
|
-
*/
|
|
72
|
-
toggleNumbering() {
|
|
73
|
-
options.numbering = !options.numbering;
|
|
74
|
-
this.setState({ numbering: options.numbering });
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Toggle tag dropdown.
|
|
78
|
-
*/
|
|
79
|
-
toggleTagDropdown() {
|
|
80
|
-
if (options.showTags && this.tagTool) {
|
|
81
|
-
options.storeTags = this.tagTool.state.selected;
|
|
82
|
-
}
|
|
83
|
-
options.showTags = !options.showTags;
|
|
84
|
-
this.setState({ showTags: options.showTags });
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Loads all document tags.
|
|
88
|
-
*/
|
|
89
|
-
loadTags() {
|
|
90
|
-
const notebook = tracker.currentWidget;
|
|
91
|
-
if (notebook) {
|
|
92
|
-
const cells = notebook.model.cells;
|
|
93
|
-
const tags = new Set();
|
|
94
|
-
this.tags = [];
|
|
95
|
-
for (let i = 0; i < cells.length; i++) {
|
|
96
|
-
const cell = cells.get(i);
|
|
97
|
-
const list = cell.metadata.get('tags');
|
|
98
|
-
if (Array.isArray(list)) {
|
|
99
|
-
list.forEach((tag) => tag && tags.add(tag));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
this.tags = Array.from(tags);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Renders a toolbar.
|
|
107
|
-
*
|
|
108
|
-
* @returns rendered toolbar
|
|
109
|
-
*/
|
|
110
|
-
render() {
|
|
111
|
-
const codeToggleIcon = (React.createElement("div", { onClick: event => this.toggleCode(), role: "text", "aria-label": this._trans.__('Toggle Code Cells'), title: this._trans.__('Toggle Code Cells'), className: this.state.showCode
|
|
112
|
-
? 'toc-toolbar-code-icon toc-toolbar-icon-selected'
|
|
113
|
-
: 'toc-toolbar-code-icon toc-toolbar-icon' },
|
|
114
|
-
React.createElement(codeIcon.react, null)));
|
|
115
|
-
const markdownToggleIcon = (React.createElement("div", { onClick: event => this.toggleMarkdown(), role: "text", "aria-label": this._trans.__('Toggle Markdown Text Cells'), title: this._trans.__('Toggle Markdown Text Cells'), className: this.state.showMarkdown
|
|
116
|
-
? 'toc-toolbar-icon-selected'
|
|
117
|
-
: 'toc-toolbar-icon' },
|
|
118
|
-
React.createElement(markdownIcon.react, null)));
|
|
119
|
-
const numberingToggleIcon = (React.createElement("div", { onClick: event => this.toggleNumbering(), role: "text", "aria-label": this._trans.__('Toggle Auto-Numbering'), title: this._trans.__('Toggle Auto-Numbering'), className: this.state.numbering
|
|
120
|
-
? 'toc-toolbar-icon-selected'
|
|
121
|
-
: 'toc-toolbar-icon' },
|
|
122
|
-
React.createElement(numberingIcon.react, null)));
|
|
123
|
-
let tagDropdown = React.createElement("div", null);
|
|
124
|
-
let tagToggleIcon = (React.createElement("div", { role: "text", "aria-label": this._trans.__('Show Tags Menu'), title: this._trans.__('Show Tags Menu'), className: this.state.showTags
|
|
125
|
-
? 'toc-toolbar-icon-selected'
|
|
126
|
-
: 'toc-toolbar-icon' },
|
|
127
|
-
React.createElement(tagIcon.react, null)));
|
|
128
|
-
if (this.state.showTags) {
|
|
129
|
-
this.loadTags();
|
|
130
|
-
const tagTool = (React.createElement(TagsToolComponent, { tags: this.tags, tracker: tracker, options: options, inputFilter: options.storeTags, translator: options.translator, ref: tagTool => (this.tagTool = tagTool) }));
|
|
131
|
-
options.tagTool = this.tagTool;
|
|
132
|
-
tagDropdown = React.createElement("div", { className: 'toc-tag-dropdown' },
|
|
133
|
-
" ",
|
|
134
|
-
tagTool,
|
|
135
|
-
" ");
|
|
136
|
-
}
|
|
137
|
-
return (React.createElement("div", null,
|
|
138
|
-
React.createElement("div", { className: 'toc-toolbar' },
|
|
139
|
-
codeToggleIcon,
|
|
140
|
-
markdownToggleIcon,
|
|
141
|
-
numberingToggleIcon,
|
|
142
|
-
React.createElement("div", { className: 'toc-tag-dropdown-button', onClick: event => this.toggleTagDropdown() }, tagToggleIcon)),
|
|
143
|
-
tagDropdown));
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Exports.
|
|
149
|
-
*/
|
|
150
|
-
export { toolbar };
|
|
151
|
-
//# sourceMappingURL=toolbar_generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar_generator.js","sourceRoot":"","sources":["../../../src/generators/notebook/toolbar_generator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { IDocumentWidget } from '@jupyterlab/docregistry';
|
|
2
|
-
import { FileEditor, IEditorTracker } from '@jupyterlab/fileeditor';
|
|
3
|
-
import { TableOfContentsRegistry as Registry } from '../../registry';
|
|
4
|
-
/**
|
|
5
|
-
* Returns a ToC generator for Python files.
|
|
6
|
-
*
|
|
7
|
-
* @private
|
|
8
|
-
* @param tracker - file editor tracker
|
|
9
|
-
* @returns ToC generator capable of parsing Python files
|
|
10
|
-
*/
|
|
11
|
-
declare function createPythonGenerator(tracker: IEditorTracker): Registry.IGenerator<IDocumentWidget<FileEditor>>;
|
|
12
|
-
/**
|
|
13
|
-
* Exports.
|
|
14
|
-
*/
|
|
15
|
-
export { createPythonGenerator };
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Jupyter Development Team.
|
|
2
|
-
// Distributed under the terms of the Modified BSD License.
|
|
3
|
-
import { render } from './render';
|
|
4
|
-
/**
|
|
5
|
-
* Generates a table of contents.
|
|
6
|
-
*
|
|
7
|
-
* @private
|
|
8
|
-
* @param editor - editor widget
|
|
9
|
-
* @returns a list of headings
|
|
10
|
-
*/
|
|
11
|
-
function generate(editor) {
|
|
12
|
-
// Split the text into lines:
|
|
13
|
-
let lines = editor.content.model.value.text.split('\n');
|
|
14
|
-
// Iterate over the lines to get the heading level and text for each line:
|
|
15
|
-
let headings = [];
|
|
16
|
-
let processingImports = false;
|
|
17
|
-
for (let i = 0; i < lines.length; i++) {
|
|
18
|
-
let line = lines[i].trim();
|
|
19
|
-
if (line.indexOf('def ') === 0) {
|
|
20
|
-
processingImports = false;
|
|
21
|
-
headings.push({
|
|
22
|
-
text: line.slice(0, -1),
|
|
23
|
-
level: 2,
|
|
24
|
-
onClick: onClick(i)
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
else if (line.indexOf('class ') === 0) {
|
|
28
|
-
processingImports = false;
|
|
29
|
-
headings.push({
|
|
30
|
-
text: line.slice(0, -1),
|
|
31
|
-
level: 1,
|
|
32
|
-
onClick: onClick(i)
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
else if (line.indexOf('import ') == 0 && !processingImports) {
|
|
36
|
-
processingImports = true;
|
|
37
|
-
headings.push({
|
|
38
|
-
text: line,
|
|
39
|
-
level: 2,
|
|
40
|
-
onClick: onClick(i)
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return headings;
|
|
45
|
-
/**
|
|
46
|
-
* Returns a "click" handler.
|
|
47
|
-
*
|
|
48
|
-
* @private
|
|
49
|
-
* @param line - line number
|
|
50
|
-
* @returns click handler
|
|
51
|
-
*/
|
|
52
|
-
function onClick(line) {
|
|
53
|
-
return () => {
|
|
54
|
-
editor.content.editor.setCursorPosition({
|
|
55
|
-
line: line,
|
|
56
|
-
column: 0
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Returns a boolean indicating whether this ToC generator is enabled.
|
|
63
|
-
*
|
|
64
|
-
* @private
|
|
65
|
-
* @param editor - editor widget
|
|
66
|
-
* @returns boolean indicating whether this ToC generator is enabled
|
|
67
|
-
*/
|
|
68
|
-
function isEnabled(editor) {
|
|
69
|
-
let mime = editor.content.model.mimeType;
|
|
70
|
-
return mime === 'application/x-python-code' || mime === 'text/x-python';
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Returns a ToC generator for Python files.
|
|
74
|
-
*
|
|
75
|
-
* @private
|
|
76
|
-
* @param tracker - file editor tracker
|
|
77
|
-
* @returns ToC generator capable of parsing Python files
|
|
78
|
-
*/
|
|
79
|
-
function createPythonGenerator(tracker) {
|
|
80
|
-
return {
|
|
81
|
-
tracker,
|
|
82
|
-
isEnabled: isEnabled,
|
|
83
|
-
itemRenderer: render,
|
|
84
|
-
generate: generate
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Exports.
|
|
89
|
-
*/
|
|
90
|
-
export { createPythonGenerator };
|
|
91
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/python/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAM3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;;;;GAMG;AACH,SAAS,QAAQ,CAAC,MAAmC;IACnD,6BAA6B;IAC7B,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;IAEtE,0EAA0E;IAC1E,IAAI,QAAQ,GAAe,EAAE,CAAC;IAC9B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9B,iBAAiB,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aACpB,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,iBAAiB,GAAG,KAAK,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aACpB,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC7D,iBAAiB,GAAG,IAAI,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;aACpB,CAAC,CAAC;SACJ;KACF;IACD,OAAO,QAAQ,CAAC;IAEhB;;;;;;OAMG;IACH,SAAS,OAAO,CAAC,IAAY;QAC3B,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACtC,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,MAAmC;IACpD,IAAI,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;IACzC,OAAO,IAAI,KAAK,2BAA2B,IAAI,IAAI,KAAK,eAAe,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,OAAuB;IAEvB,OAAO;QACL,OAAO;QACP,SAAS,EAAE,SAAS;QACpB,YAAY,EAAE,MAAM;QACpB,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { IHeading } from '../../utils/headings';
|
|
3
|
-
/**
|
|
4
|
-
* Renders a Python table of contents item.
|
|
5
|
-
*
|
|
6
|
-
* @private
|
|
7
|
-
* @param item - numbered heading
|
|
8
|
-
* @returns rendered item
|
|
9
|
-
*/
|
|
10
|
-
declare function render(item: IHeading): JSX.Element;
|
|
11
|
-
/**
|
|
12
|
-
* Exports.
|
|
13
|
-
*/
|
|
14
|
-
export { render };
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Jupyter Development Team.
|
|
2
|
-
// Distributed under the terms of the Modified BSD License.
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* Renders a Python table of contents item.
|
|
6
|
-
*
|
|
7
|
-
* @private
|
|
8
|
-
* @param item - numbered heading
|
|
9
|
-
* @returns rendered item
|
|
10
|
-
*/
|
|
11
|
-
function render(item) {
|
|
12
|
-
let fontSizeClass = 'toc-level-size-' + item.level;
|
|
13
|
-
return (React.createElement("div", { className: fontSizeClass + ' toc-entry-holder' },
|
|
14
|
-
React.createElement("div", { className: "jp-Collapser p-Widget lm-Widget" },
|
|
15
|
-
React.createElement("div", { className: "toc-Collapser-child" })),
|
|
16
|
-
React.createElement("span", { className: "header-cell toc-cell-item" },
|
|
17
|
-
" ",
|
|
18
|
-
item.text,
|
|
19
|
-
" ")));
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Exports.
|
|
23
|
-
*/
|
|
24
|
-
export { render };
|
|
25
|
-
//# sourceMappingURL=render.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/generators/python/render.tsx"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;GAMG;AACH,SAAS,MAAM,CAAC,IAAc;IAC5B,IAAI,aAAa,GAAG,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;IAEnD,OAAO,CACL,6BAAK,SAAS,EAAE,aAAa,GAAG,mBAAmB;QACjD,6BAAK,SAAS,EAAC,iCAAiC;YAC9C,6BAAK,SAAS,EAAC,qBAAqB,GAAO,CACvC;QACN,8BAAM,SAAS,EAAC,2BAA2B;;YAAG,IAAI,CAAC,IAAI;gBAAS,CAC5D,CACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/lib/toc.d.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { IDocumentManager } from '@jupyterlab/docmanager';
|
|
2
|
-
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
|
|
3
|
-
import { ITranslator } from '@jupyterlab/translation';
|
|
4
|
-
import { Message } from '@lumino/messaging';
|
|
5
|
-
import { Widget } from '@lumino/widgets';
|
|
6
|
-
import { IHeading } from './utils/headings';
|
|
7
|
-
import { TableOfContentsRegistry as Registry } from './registry';
|
|
8
|
-
/**
|
|
9
|
-
* Widget for hosting a notebook table of contents.
|
|
10
|
-
*/
|
|
11
|
-
export declare class TableOfContents extends Widget {
|
|
12
|
-
/**
|
|
13
|
-
* Returns a new table of contents.
|
|
14
|
-
*
|
|
15
|
-
* @param options - options
|
|
16
|
-
* @returns widget
|
|
17
|
-
*/
|
|
18
|
-
constructor(options: TableOfContents.IOptions);
|
|
19
|
-
/**
|
|
20
|
-
* Current widget-generator tuple for the ToC.
|
|
21
|
-
*/
|
|
22
|
-
get current(): TableOfContents.ICurrentWidget | null;
|
|
23
|
-
set current(value: TableOfContents.ICurrentWidget | null);
|
|
24
|
-
/**
|
|
25
|
-
* Current table of contents generator.
|
|
26
|
-
*
|
|
27
|
-
* @returns table of contents generator
|
|
28
|
-
*/
|
|
29
|
-
get generator(): Registry.IGenerator<Widget> | null;
|
|
30
|
-
/**
|
|
31
|
-
* Callback invoked upon an update request.
|
|
32
|
-
*
|
|
33
|
-
* @param msg - message
|
|
34
|
-
*/
|
|
35
|
-
protected onUpdateRequest(msg: Message): void;
|
|
36
|
-
/**
|
|
37
|
-
* Current active entry.
|
|
38
|
-
*
|
|
39
|
-
* @returns table of contents active entry
|
|
40
|
-
*/
|
|
41
|
-
get activeEntry(): IHeading;
|
|
42
|
-
set activeEntry(value: IHeading);
|
|
43
|
-
/**
|
|
44
|
-
* List of headings.
|
|
45
|
-
*
|
|
46
|
-
* @returns table of contents list of headings
|
|
47
|
-
*/
|
|
48
|
-
get headings(): IHeading[];
|
|
49
|
-
/**
|
|
50
|
-
* Callback invoked to re-render after showing a table of contents.
|
|
51
|
-
*
|
|
52
|
-
* @param msg - message
|
|
53
|
-
*/
|
|
54
|
-
protected onAfterShow(msg: Message): void;
|
|
55
|
-
private translator;
|
|
56
|
-
private _activeEntry;
|
|
57
|
-
private _entryClicked?;
|
|
58
|
-
private _trans;
|
|
59
|
-
private _toolbar;
|
|
60
|
-
private _rendermime;
|
|
61
|
-
private _docmanager;
|
|
62
|
-
private _current;
|
|
63
|
-
private _monitor;
|
|
64
|
-
private _headings;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* A namespace for TableOfContents statics.
|
|
68
|
-
*/
|
|
69
|
-
export declare namespace TableOfContents {
|
|
70
|
-
/**
|
|
71
|
-
* Interface describing table of contents widget options.
|
|
72
|
-
*/
|
|
73
|
-
interface IOptions {
|
|
74
|
-
/**
|
|
75
|
-
* Application document manager.
|
|
76
|
-
*/
|
|
77
|
-
docmanager: IDocumentManager;
|
|
78
|
-
/**
|
|
79
|
-
* Application rendered MIME type.
|
|
80
|
-
*/
|
|
81
|
-
rendermime: IRenderMimeRegistry;
|
|
82
|
-
/**
|
|
83
|
-
* Application language translator.
|
|
84
|
-
*/
|
|
85
|
-
translator?: ITranslator;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Interface describing the current widget.
|
|
89
|
-
*/
|
|
90
|
-
interface ICurrentWidget<W extends Widget = Widget> {
|
|
91
|
-
/**
|
|
92
|
-
* Current widget.
|
|
93
|
-
*/
|
|
94
|
-
widget: W;
|
|
95
|
-
/**
|
|
96
|
-
* Table of contents generator for the current widget.
|
|
97
|
-
*/
|
|
98
|
-
generator: Registry.IGenerator<W>;
|
|
99
|
-
}
|
|
100
|
-
}
|
package/lib/toc.js
DELETED
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Jupyter Development Team.
|
|
2
|
-
// Distributed under the terms of the Modified BSD License.
|
|
3
|
-
import { ActivityMonitor, PathExt } from '@jupyterlab/coreutils';
|
|
4
|
-
import { nullTranslator } from '@jupyterlab/translation';
|
|
5
|
-
import { Widget } from '@lumino/widgets';
|
|
6
|
-
import * as React from 'react';
|
|
7
|
-
import * as ReactDOM from 'react-dom';
|
|
8
|
-
import { TOCTree } from './toc_tree';
|
|
9
|
-
import { Signal } from '@lumino/signaling';
|
|
10
|
-
/**
|
|
11
|
-
* Timeout for throttling ToC rendering.
|
|
12
|
-
*
|
|
13
|
-
* @private
|
|
14
|
-
*/
|
|
15
|
-
const RENDER_TIMEOUT = 1000;
|
|
16
|
-
/**
|
|
17
|
-
* Widget for hosting a notebook table of contents.
|
|
18
|
-
*/
|
|
19
|
-
export class TableOfContents extends Widget {
|
|
20
|
-
/**
|
|
21
|
-
* Returns a new table of contents.
|
|
22
|
-
*
|
|
23
|
-
* @param options - options
|
|
24
|
-
* @returns widget
|
|
25
|
-
*/
|
|
26
|
-
constructor(options) {
|
|
27
|
-
super();
|
|
28
|
-
this.translator = options.translator || nullTranslator;
|
|
29
|
-
this._docmanager = options.docmanager;
|
|
30
|
-
this._rendermime = options.rendermime;
|
|
31
|
-
this._trans = this.translator.load('jupyterlab');
|
|
32
|
-
this._headings = [];
|
|
33
|
-
this._entryClicked = new Signal(this);
|
|
34
|
-
this._entryClicked.connect((toc, item) => {
|
|
35
|
-
this.activeEntry = item.props.heading;
|
|
36
|
-
});
|
|
37
|
-
if (this._current) {
|
|
38
|
-
this._headings = this._current.generator.generate(this._current.widget, this._current.generator.options);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Current widget-generator tuple for the ToC.
|
|
43
|
-
*/
|
|
44
|
-
get current() {
|
|
45
|
-
return this._current;
|
|
46
|
-
}
|
|
47
|
-
set current(value) {
|
|
48
|
-
// If they are the same as previously, do nothing...
|
|
49
|
-
if (value &&
|
|
50
|
-
this._current &&
|
|
51
|
-
this._current.widget === value.widget &&
|
|
52
|
-
this._current.generator === value.generator) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this._current = value;
|
|
56
|
-
if (this.generator) {
|
|
57
|
-
if (this.generator.toolbarGenerator) {
|
|
58
|
-
this._toolbar = this.generator.toolbarGenerator();
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this._toolbar = null;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
// Dispose an old activity monitor if one existed...
|
|
65
|
-
if (this._monitor) {
|
|
66
|
-
this._monitor.dispose();
|
|
67
|
-
this._monitor = null;
|
|
68
|
-
}
|
|
69
|
-
// If we are wiping the ToC, update and return...
|
|
70
|
-
if (!this._current) {
|
|
71
|
-
this.update();
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
// Find the document model associated with the widget:
|
|
75
|
-
const context = this._docmanager.contextForWidget(this._current.widget);
|
|
76
|
-
if (!context || !context.model) {
|
|
77
|
-
throw Error('Could not find a context for the Table of Contents');
|
|
78
|
-
}
|
|
79
|
-
// Throttle the rendering rate of the table of contents:
|
|
80
|
-
this._monitor = new ActivityMonitor({
|
|
81
|
-
signal: context.model.contentChanged,
|
|
82
|
-
timeout: RENDER_TIMEOUT
|
|
83
|
-
});
|
|
84
|
-
this._monitor.activityStopped.connect(this.update, this);
|
|
85
|
-
this.update();
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Current table of contents generator.
|
|
89
|
-
*
|
|
90
|
-
* @returns table of contents generator
|
|
91
|
-
*/
|
|
92
|
-
get generator() {
|
|
93
|
-
if (this._current) {
|
|
94
|
-
return this._current.generator;
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Callback invoked upon an update request.
|
|
100
|
-
*
|
|
101
|
-
* @param msg - message
|
|
102
|
-
*/
|
|
103
|
-
onUpdateRequest(msg) {
|
|
104
|
-
if (this.isHidden) {
|
|
105
|
-
// Bail early
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
let title = this._trans.__('Table of Contents');
|
|
109
|
-
if (this._current) {
|
|
110
|
-
this._headings = this._current.generator.generate(this._current.widget, this._current.generator.options);
|
|
111
|
-
const context = this._docmanager.contextForWidget(this._current.widget);
|
|
112
|
-
if (context) {
|
|
113
|
-
title = PathExt.basename(context.localPath);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
let itemRenderer = (item) => {
|
|
117
|
-
return React.createElement("span", null, item.text);
|
|
118
|
-
};
|
|
119
|
-
if (this._current && this._current.generator.itemRenderer) {
|
|
120
|
-
itemRenderer = this._current.generator.itemRenderer;
|
|
121
|
-
}
|
|
122
|
-
let jsx = (React.createElement("div", { className: "jp-TableOfContents" },
|
|
123
|
-
React.createElement("div", { className: "jp-stack-panel-header" }, title)));
|
|
124
|
-
if (this._current && this._current.generator) {
|
|
125
|
-
jsx = (React.createElement(TOCTree, { title: title, toc: this._headings, entryClicked: this._entryClicked, generator: this.generator, itemRenderer: itemRenderer, toolbar: this._toolbar }));
|
|
126
|
-
}
|
|
127
|
-
ReactDOM.render(jsx, this.node, () => {
|
|
128
|
-
if (this._current &&
|
|
129
|
-
this._current.generator.usesLatex === true &&
|
|
130
|
-
this._rendermime.latexTypesetter) {
|
|
131
|
-
this._rendermime.latexTypesetter.typeset(this.node);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Current active entry.
|
|
137
|
-
*
|
|
138
|
-
* @returns table of contents active entry
|
|
139
|
-
*/
|
|
140
|
-
get activeEntry() {
|
|
141
|
-
return this._activeEntry;
|
|
142
|
-
}
|
|
143
|
-
set activeEntry(value) {
|
|
144
|
-
this._activeEntry = value;
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* List of headings.
|
|
148
|
-
*
|
|
149
|
-
* @returns table of contents list of headings
|
|
150
|
-
*/
|
|
151
|
-
get headings() {
|
|
152
|
-
return this._headings;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Callback invoked to re-render after showing a table of contents.
|
|
156
|
-
*
|
|
157
|
-
* @param msg - message
|
|
158
|
-
*/
|
|
159
|
-
onAfterShow(msg) {
|
|
160
|
-
this.update();
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
//# sourceMappingURL=toc.js.map
|
package/lib/toc.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toc.js","sourceRoot":"","sources":["../src/toc.tsx"],"names":[],"mappings":"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"}
|
package/lib/toc_item.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { IHeading } from './utils/headings';
|
|
3
|
-
import { Signal } from '@lumino/signaling';
|
|
4
|
-
import { TableOfContents } from './toc';
|
|
5
|
-
/**
|
|
6
|
-
* Interface describing component properties.
|
|
7
|
-
*
|
|
8
|
-
* @private
|
|
9
|
-
*/
|
|
10
|
-
interface IProperties {
|
|
11
|
-
/**
|
|
12
|
-
* Heading to render.
|
|
13
|
-
*/
|
|
14
|
-
heading: IHeading;
|
|
15
|
-
/**
|
|
16
|
-
* List of headings to use for rendering current position in toc
|
|
17
|
-
*/
|
|
18
|
-
toc: IHeading[];
|
|
19
|
-
/**
|
|
20
|
-
* Optional signal that emits when a toc entry is clicked
|
|
21
|
-
*/
|
|
22
|
-
entryClicked?: Signal<TableOfContents, TOCItem>;
|
|
23
|
-
/**
|
|
24
|
-
* Renders a heading.
|
|
25
|
-
*
|
|
26
|
-
* @param item - heading
|
|
27
|
-
* @param toc - list of headings
|
|
28
|
-
* @returns rendered heading
|
|
29
|
-
*/
|
|
30
|
-
itemRenderer: (item: IHeading, toc: IHeading[]) => JSX.Element | null;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Interface describing component state.
|
|
34
|
-
*
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
interface IState {
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* React component for a table of contents entry.
|
|
41
|
-
*
|
|
42
|
-
* @private
|
|
43
|
-
*/
|
|
44
|
-
declare class TOCItem extends React.Component<IProperties, IState> {
|
|
45
|
-
/**
|
|
46
|
-
* Renders a table of contents entry.
|
|
47
|
-
*
|
|
48
|
-
* @returns rendered entry
|
|
49
|
-
*/
|
|
50
|
-
render(): JSX.Element | null;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Exports.
|
|
54
|
-
*/
|
|
55
|
-
export { TOCItem };
|