JupyterLab ToC Anweisungen
Es gibt bereits viele gute Antworten auf diese Frage, aber sie erfordern häufig Optimierungen, um mit Notebooks in JupyterLab ordnungsgemäß zu funktionieren. Ich habe diese Antwort geschrieben, um detailliert zu beschreiben, wie ein Inhaltsverzeichnis in ein Notizbuch aufgenommen werden kann, während in JupyterLab gearbeitet und aus JupyterLab exportiert wird.
Als Seitenwand
Die Erweiterung jupyterlab-toc fügt den ToC als Seitenbereich hinzu, der Überschriften nummerieren, Abschnitte reduzieren und für die Navigation verwendet werden kann (siehe GIF unten für eine Demo). Installieren Sie mit dem folgenden Befehl
jupyter labextension install @jupyterlab/toc
Im Notizbuch als Zelle
Derzeit kann dies entweder manuell wie in Matt Danchos Antwort oder automatisch über die toc2 jupyter Notebook-Erweiterung
in der klassischen Notebook-Oberfläche erfolgen.
Installieren Sie zunächst toc2 als Teil des Bundles jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Starten Sie dann JupyterLab, gehen Sie zu Help --> Launch Classic Notebook
und öffnen Sie das Notizbuch, in dem Sie den ToC hinzufügen möchten. Klicken Sie auf das toc2-Symbol in der Symbolleiste, um das schwebende ToC-Fenster aufzurufen (siehe das GIF unten, wenn Sie es nicht finden können), klicken Sie auf das Zahnradsymbol und aktivieren Sie das Kontrollkästchen "Notebook-ToC-Zelle hinzufügen". Speichern Sie das Notizbuch und die ToC-Zelle wird angezeigt, wenn Sie es in JupyterLab öffnen. Die eingefügte Zelle ist eine Markdown-Zelle mit HTML. Sie wird nicht automatisch aktualisiert.
Die Standardoptionen des toc2 können auf der Registerkarte "Nbextensions" auf der klassischen Startseite des Notebooks konfiguriert werden. Sie können z. B. Überschriften nummerieren und den ToC als Seitenleiste verankern (was meiner Meinung nach sauberer aussieht).
In einer exportierten HTML-Datei
nbconvert
kann verwendet werden, um Notizbücher nach den folgenden Regeln zum Formatieren des exportierten HTML-Codes in HTML zu exportieren. Die toc2
oben erwähnte Erweiterung fügt ein Exportformat mit dem Namen hinzu html_toc
, das direkt über nbconvert
die Befehlszeile verwendet werden kann (nachdem die toc2
Erweiterung installiert wurde):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
Denken Sie daran, dass Shell-Befehle zu Notebook-Zellen hinzugefügt werden können, indem ihnen ein Ausrufezeichen vorangestellt wird. !
Sie können diese Zeile also in die letzte Zelle des Notebooks einfügen und immer eine HTML-Datei mit einem ToC generieren lassen, wenn Sie auf "Alle Zellen ausführen" klicken ( oder was auch immer Sie ausgeben möchten nbconvert
). Auf diese Weise können Sie jupyterlab-toc
während der Arbeit im Notebook navigieren und trotzdem ToCs in der exportierten Ausgabe abrufen, ohne auf die klassische Notebook-Oberfläche zurückgreifen zu müssen (für Puristen unter uns).
Beachten Sie, dass das Konfigurieren der Standardoptionen für toc2 wie oben beschrieben das Format von nicht ändert nbconver --to html_toc
. Sie müssen das Notizbuch in der klassischen Notizbuchoberfläche öffnen, damit die Metadaten in die IPynb-Datei geschrieben werden (nbconvert liest die Metadaten beim Exportieren). Alternativ können Sie die Metadaten manuell über die Registerkarte Notizbuch-Tools der JupyterLab-Seitenleiste hinzufügen, z mögen:
"toc": {
"number_sections": false,
"sideBar": true
}
Wenn Sie einen GUI-gesteuerten Ansatz bevorzugen, sollten Sie in der Lage sein, das klassische Notizbuch zu öffnen und auf zu klicken File --> Save as HTML (with ToC)
(obwohl zu beachten ist, dass dieser Menüpunkt für mich nicht verfügbar war).
Die obigen Gifs sind aus der jeweiligen Dokumentation der Erweiterungen verlinkt.