Инструкции JupyterLab ToC
На этот вопрос уже есть много хороших ответов, но они часто требуют настройки для правильной работы с блокнотами в JupyterLab. Я написал этот ответ, чтобы подробно описать возможные способы включения ToC в записную книжку во время работы и экспорта из JupyterLab.
Как боковая панель
Расширение jupyterlab-toc добавляет ToC в качестве боковой панели, которая может нумеровать заголовки, сворачивать разделы и использоваться для навигации (см. гифку ниже для демонстрации). Это расширение включено по умолчанию, начиная с JupyterLab 3.0, в более старой версии вы можете установить его с помощью следующей команды
jupyter labextension install @jupyterlab/toc
В записной книжке как клетка
В настоящее время это можно сделать либо вручную, как в ответе Мэтта Данчо, либо автоматически через toc2 jupyter notebook extension в классическом интерфейсе записной книжки.
Сначала установите 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)
(хотя обратите внимание, что этот пункт меню был недоступен для меня).
На приведенные выше гифки есть ссылки из соответствующей документации расширений.
person
joelostblom
schedule
11.12.2019