Инструкции JupyterLab ToC
На этот вопрос уже есть много хороших ответов, но они часто требуют настройки для правильной работы с записными книжками в JupyterLab. Я написал этот ответ, чтобы подробно описать возможные способы включения ToC в записную книжку во время работы и экспорта из JupyterLab.
Как боковая панель
Расширение jupyterlab-toc добавляет ToC в качестве боковой панели, которая может нумеровать заголовки, сворачивать разделы и использоваться для навигации (см. Рисунок ниже для демонстрации). Установите с помощью следующей команды
jupyter labextension install @jupyterlab/toc
В записной книжке как клетка
В настоящее время это можно сделать либо вручную, как в ответе Мэтта Данчо, либо автоматически с помощью расширения toc2 jupyter notebook.
в классическом интерфейсе ноутбука.
Сначала установите toc2 как часть пакета jupyter_contrib_nbextensions :
conda install -c conda-forge jupyter_contrib_nbextensions
Затем запустите JupyterLab, перейдите к Help --> Launch Classic Notebook
и откройте записную книжку, в которую вы хотите добавить ToC. Щелкните символ toc2 на панели инструментов, чтобы открыть плавающее окно ToC (см. Гифку ниже, если вы не можете его найти), щелкните значок шестеренки и установите флажок «Добавить ячейку ToC для записной книжки». Сохраните записную книжку, и ячейка ToC будет там, когда вы откроете ее в JupyterLab. Вставленная ячейка представляет собой ячейку уценки с HTML-кодом в ней, она не будет обновляться автоматически.
Параметры toc2 по умолчанию можно настроить на вкладке «Nbextensions» на классической странице запуска записной книжки. Вы можете, например, пронумеровать заголовки и привязать ToC как боковую панель (что, по моему мнению, выглядит чище).
В экспортированном HTML-файле
nbconvert
может использоваться для экспорта записных книжек в HTML, следуя правилам форматирования экспортируемого HTML. toc2
Расширение уже упоминалось выше , добавляет формат экспорта под названием html_toc
, которое можно использовать непосредственно nbconvert
из командной строки (после того , как toc2
было установлено расширение):
jupyter nbconvert file.ipynb --to html_toc
# Append `--ExtractOutputPreprocessor.enabled=False`
# to get a single html file instead of a separate directory for images
Помните, что команды оболочки могут быть добавлены в ячейки записной книжки, поставив перед ними восклицательный знак !
, поэтому вы можете вставить эту строку в последнюю ячейку записной книжки и всегда иметь файл HTML с ToC, сгенерированный при нажатии кнопки «Выполнить все ячейки» ( или любой другой результат, который вам нужен nbconvert
). Таким образом, вы можете использоватьjupyterlab-toc
для навигации по записной книжке во время работы и по-прежнему получать ToCs в экспортированном выводе, не прибегая к использованию классического интерфейса записной книжки (для пуристов среди нас).
Обратите внимание, что настройка параметров toc2 по умолчанию, как описано выше, не изменит формат файла nbconver --to html_toc
. Вам нужно открыть записную книжку в классическом интерфейсе записной книжки, чтобы метаданные были записаны в файл .ipynb (nbconvert считывает метаданные при экспорте). Кроме того, вы можете добавить метаданные вручную через вкладку «Инструменты записной книжки» на боковой панели JupyterLab, например что-то лайк:
"toc": {
"number_sections": false,
"sideBar": true
}
Если вы предпочитаете подход, основанный на графическом интерфейсе пользователя, у вас должна быть возможность открыть классический блокнот и щелкнуть File --> Save as HTML (with ToC)
(хотя обратите внимание, что этот пункт меню был недоступен для меня).
На приведенные выше гифки есть ссылки из соответствующей документации расширений.