Instrucciones de JupyterLab ToC
Ya hay muchas buenas respuestas a esta pregunta, pero a menudo requieren ajustes para funcionar correctamente con portátiles en JupyterLab. Escribí esta respuesta para detallar las posibles formas de incluir un ToC en un cuaderno mientras trabajaba y exportaba desde JupyterLab.
Como panel lateral
La extensión jupyterlab-toc agrega la ToC como un panel lateral que puede numerar encabezados, contraer secciones y usarse para la navegación (vea el gif a continuación para ver una demostración). Instalar con el siguiente comando
jupyter labextension install @jupyterlab/toc
En el cuaderno como una celda
Por el momento, esto se puede hacer manualmente como en la respuesta de Matt Dancho, o automáticamente a través de la extensión del cuaderno toc2 jupyter
en la interfaz clásica del portátil.
Primero, instale toc2 como parte del paquete jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Luego, inicie JupyterLab, vaya a Help --> Launch Classic Notebook
y abra el cuaderno en el que desea agregar la ToC. Haga clic en el símbolo TOC2 en la barra de herramientas para que aparezca la ventana ToC flotante (vea el gif a continuación si no puede encontrarlo), haga clic en el icono de engranaje y marque la casilla "Agregar celda ToC del cuaderno". Guarde el cuaderno y la celda ToC estará allí cuando lo abra en JupyterLab. La celda insertada es una celda de descuento con html en ella, no se actualizará automáticamente.
Las opciones predeterminadas del toc2 se pueden configurar en la pestaña "Nbextensions" en la página de inicio del portátil clásico. Por ejemplo, puede elegir numerar los títulos y anclar la ToC como una barra lateral (que personalmente creo que se ve más limpia).
En un archivo HTML exportado
nbconvert
se puede utilizar para exportar cuadernos a HTML siguiendo las reglas de cómo formatear el HTML exportado. La toc2
extensión mencionada anteriormente agrega un formato de exportación llamado html_toc
, que se puede usar directamente nbconvert
desde la línea de comando (después de que toc2
se haya instalado la extensión):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
Recuerde que los comandos de shell se pueden agregar a las celdas del cuaderno colocándolos delante de un signo de exclamación !
, por lo que puede pegar esta línea en la última celda del cuaderno y siempre tener un archivo HTML con un ToC generado cuando presiona "Ejecutar todas las celdas" ( o cualquier salida que desee nbconvert
). De esta manera, podría utilizar jupyterlab-toc
para navegar por el portátil mientras está trabajando y aún obtener ToC en la salida exportada sin tener que recurrir al uso de la interfaz clásica del portátil (para los puristas entre nosotros).
Tenga en cuenta que configurar las opciones predeterminadas de toc2 como se describe anteriormente, no cambiará el formato de nbconver --to html_toc
. Debe abrir el cuaderno en la interfaz clásica del cuaderno para que los metadatos se escriban en el archivo .ipynb (nbconvert lee los metadatos al exportar) Alternativamente, puede agregar los metadatos manualmente a través de la pestaña Herramientas del cuaderno de la barra lateral de JupyterLab, por ejemplo, algo me gusta:
"toc": {
"number_sections": false,
"sideBar": true
}
Si prefiere un enfoque basado en GUI, debería poder abrir el cuaderno clásico y hacer clic File --> Save as HTML (with ToC)
(aunque tenga en cuenta que este elemento de menú no estaba disponible para mí).
Los gifs de arriba están vinculados a la documentación respectiva de las extensiones.