Istruzioni JupyterLab ToC
Ci sono già molte buone risposte a questa domanda, ma spesso richiedono modifiche per funzionare correttamente con i notebook in JupyterLab. Ho scritto questa risposta per dettagliare i possibili modi di includere un ToC in un notebook mentre lavoravo ed esportava da JupyterLab.
Come pannello laterale
L' estensione jupyterlab-toc aggiunge il ToC come pannello laterale che può numerare le intestazioni, comprimere le sezioni ed essere utilizzato per la navigazione (vedi gif di seguito per una demo). Installa con il seguente comando
jupyter labextension install @jupyterlab/toc
Nel taccuino come cella
Al momento, questo può essere fatto manualmente come nella risposta di Matt Dancho o automaticamente tramite l' estensione per notebook toc2 jupyter
nell'interfaccia classica del notebook.
Innanzitutto, installa toc2 come parte del bundle jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Quindi, avvia JupyterLab, vai a Help --> Launch Classic Notebook
e apri il blocco note in cui desideri aggiungere il ToC. Fare clic sul simbolo toc2 nella barra degli strumenti per visualizzare la finestra mobile ToC (vedere la gif di seguito se non la si trova), fare clic sull'icona a forma di ingranaggio e selezionare la casella "Aggiungi cella ToC notebook". Salva il taccuino e la cella ToC sarà lì quando lo apri in JupyterLab. La cella inserita è una cella markdown con html in essa, non si aggiornerà automaticamente.
Le opzioni predefinite di toc2 possono essere configurate nella scheda "Nbextensions" nella pagina di avvio del notebook classico. Puoi ad esempio scegliere di numerare le intestazioni e di ancorare il ToC come barra laterale (che personalmente ritengo sia più pulita).
In un file HTML esportato
nbconvert
può essere utilizzato per esportare i taccuini in HTML seguendo le regole su come formattare l'HTML esportato. L' toc2
estensione di cui sopra aggiunge un formato di esportazione chiamato html_toc
, che può essere utilizzato direttamente nbconvert
dalla riga di comando (dopo che l' toc2
estensione è stata installata):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
Ricorda che i comandi della shell possono essere aggiunti alle celle del taccuino anteponendole a un punto esclamativo !
, così puoi inserire questa riga nell'ultima cella del taccuino e avere sempre un file HTML con un ToC generato quando premi "Esegui tutte le celle" ( o qualsiasi output desideri nbconvert
). In questo modo potresti usarejupyterlab-toc
navigare nel notebook mentre si sta lavorando e ottenere comunque ToC nell'output esportato senza dover ricorrere all'uso della classica interfaccia del notebook (per i puristi tra noi).
Si noti che la configurazione delle opzioni toc2 predefinite come descritto sopra, non cambierà il formato di nbconver --to html_toc
. È necessario aprire il taccuino nell'interfaccia classica del taccuino affinché i metadati vengano scritti nel file .ipynb (nbconvert legge i metadati durante l'esportazione) In alternativa, puoi aggiungere manualmente i metadati tramite la scheda Strumenti del taccuino della barra laterale di JupyterLab, ad esempio qualcosa piace:
"toc": {
"number_sections": false,
"sideBar": true
}
Se preferisci un approccio basato sulla GUI, dovresti essere in grado di aprire il classico notebook e fare clic File --> Save as HTML (with ToC)
(anche se tieni presente che questa voce di menu non era disponibile per me).
Le gif sopra sono collegate dalla rispettiva documentazione delle estensioni.