Instruções do JupyterLab ToC
Já existem muitas respostas boas para essa pergunta, mas muitas vezes exigem ajustes para funcionar corretamente com notebooks no JupyterLab. Escrevi esta resposta para detalhar as maneiras possíveis de incluir um ToC em um bloco de notas ao trabalhar e exportar do JupyterLab.
Como um painel lateral
A extensão jupyterlab-toc adiciona o ToC como um painel lateral que pode numerar títulos, recolher seções e ser usado para navegação (veja uma demonstração no gif abaixo). Instale com o seguinte comando
jupyter labextension install @jupyterlab/toc
No caderno como uma célula
No momento, isso pode ser feito manualmente, como na resposta de Matt Dancho, ou automaticamente por meio da extensão toc2 jupyter para notebook
na interface do notebook clássico.
Primeiro, instale toc2 como parte do pacote jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Em seguida, inicie o JupyterLab, vá para Help --> Launch Classic Notebook
e abra o bloco de notas no qual deseja adicionar o ToC. Clique no símbolo toc2 na barra de ferramentas para abrir a janela ToC flutuante (veja o gif abaixo se você não conseguir encontrá-lo), clique no ícone de engrenagem e marque a caixa "Adicionar célula ToC de notebook". Salve o bloco de notas e a célula ToC estará lá quando você abri-lo no JupyterLab. A célula inserida é uma célula em markdown com html, ela não será atualizada automaticamente.
As opções padrão do toc2 podem ser configuradas na guia "Nbextensions" na página de inicialização do notebook clássico. Você pode, por exemplo, escolher numerar títulos e ancorar o ToC como uma barra lateral (o que eu pessoalmente acho que parece mais limpo).
Em um arquivo HTML exportado
nbconvert
pode ser usado para exportar blocos de notas para HTML seguindo as regras de como formatar o HTML exportado. A toc2
extensão mencionada acima adiciona um formato de exportação chamado html_toc
, que pode ser usado diretamente com nbconvert
a linha de comando (após a toc2
extensão ter sido instalada):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
Lembre-se de que os comandos do shell podem ser adicionados às células do bloco de notas precedendo-os com um ponto de exclamação !
, então você pode colocar esta linha na última célula do bloco de notas e sempre ter um arquivo HTML com um ToC gerado quando você clicar em "Executar todas as células" ( ou qualquer saída que você deseja nbconvert
). Dessa forma, você pode usarjupyterlab-toc
navegar pelo notebook enquanto está trabalhando, e ainda obter ToCs na saída exportada sem ter que recorrer ao uso da interface de notebook clássica (para os puristas entre nós).
Observe que configurar as opções toc2 padrão conforme descrito acima não alterará o formato de nbconver --to html_toc
. Você precisa abrir o bloco de notas na interface do bloco de notas clássico para que os metadados sejam gravados no arquivo .ipynb (nbconvert lê os metadados ao exportar). Alternativamente, você pode adicionar os metadados manualmente por meio da guia Ferramentas do Bloco de anotações da barra lateral do JupyterLab, por exemplo, algo gostar:
"toc": {
"number_sections": false,
"sideBar": true
}
Se você preferir uma abordagem baseada em GUI, deverá ser capaz de abrir o notebook clássico e clicar File --> Save as HTML (with ToC)
(embora observe que este item de menu não estava disponível para mim).
Os gifs acima estão vinculados à respectiva documentação das extensões.