Instructions pour JupyterLab ToC
Il existe déjà de nombreuses bonnes réponses à cette question, mais elles nécessitent souvent des ajustements pour fonctionner correctement avec les blocs-notes dans JupyterLab. J'ai écrit cette réponse pour détailler les manières possibles d'inclure une ToC dans un ordinateur portable tout en travaillant et en exportant depuis JupyterLab.
En tant que panneau latéral
le extension jupyterlab-toc ajoute la ToC en tant que panneau latéral qui peut numéroter les en-têtes, réduire les sections et être utilisé pour la navigation (voir gif ci-dessous pour une démo). Installez avec la commande suivante
jupyter labextension install @jupyterlab/toc
Dans le cahier comme une cellule
Pour le moment, cela peut être fait manuellement comme dans la réponse de Matt Dancho, ou automatiquement via l' extension toc2 jupyter notebook
dans l'interface classique du notebook.
Tout d'abord, installez toc2 dans le cadre du bundle jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Ensuite, lancez JupyterLab, accédez à Help --> Launch Classic Notebook
et ouvrez le bloc-notes dans lequel vous souhaitez ajouter la ToC. Cliquez sur le symbole toc2 dans la barre d'outils pour afficher la fenêtre ToC flottante (voir le gif ci-dessous si vous ne le trouvez pas), cliquez sur l'icône d'engrenage et cochez la case "Ajouter une cellule ToC notebook". Enregistrez le bloc-notes et la cellule ToC sera là lorsque vous l'ouvrirez dans JupyterLab. La cellule insérée est une cellule markdown contenant du HTML, elle ne se mettra pas à jour automatiquement.
Les options par défaut du toc2 peuvent être configurées dans l'onglet "Nbextensions" de la page de lancement du notebook classique. Vous pouvez par exemple choisir de numéroter les en-têtes et d'ancrer la ToC en tant que barre latérale (ce qui, personnellement, semble plus propre).
Dans un fichier HTML exporté
nbconvert
peut être utilisé pour exporter des blocs-notes au format HTML en suivant les règles de mise en forme du HTML exporté. L' toc2
extension mentionnée ci-dessus ajoute un format d'exportation appelé html_toc
, qui peut être utilisé directement avec à nbconvert
partir de la ligne de commande (après l' toc2
installation de l' extension):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
N'oubliez pas que les commandes shell peuvent être ajoutées aux cellules du bloc-notes en les faisant précéder d'un point d'exclamation !
, vous pouvez donc coller cette ligne dans la dernière cellule du bloc-notes et toujours avoir un fichier HTML avec une ToC générée lorsque vous cliquez sur "Exécuter toutes les cellules" ( ou quelle que soit la sortie que vous désirez nbconvert
). De cette façon, vous pouvez utiliser jupyterlab-toc
pour naviguer dans le notebook pendant que vous travaillez, et toujours obtenir des ToC dans la sortie exportée sans avoir à recourir à l'interface classique du notebook (pour les puristes parmi nous).
Notez que la configuration des options toc2 par défaut comme décrit ci-dessus ne changera pas le format de nbconver --to html_toc
. Vous devez ouvrir le notebook dans l'interface classique du notebook pour que les métadonnées soient écrites dans le fichier .ipynb (nbconvert lit les métadonnées lors de l'exportation) Alternativement, vous pouvez ajouter les métadonnées manuellement via l'onglet Outils du notebook de la barre latérale JupyterLab, par exemple quelque chose comme:
"toc": {
"number_sections": false,
"sideBar": true
}
Si vous préférez une approche basée sur l'interface graphique, vous devriez pouvoir ouvrir le bloc-notes classique et cliquer File --> Save as HTML (with ToC)
(bien que notez que cet élément de menu n'était pas disponible pour moi).
Les gifs ci-dessus sont liés à partir de la documentation respective des extensions.