JupyterLab ToC说明
这个问题已经有很多好的答案,但是它们经常需要进行调整才能在JupyterLab中与笔记本一起正常使用。我写了这个答案,以详细说明在JupyterLab进行工作或从JupyterLab导出时在笔记本中包含ToC的可能方式。
作为侧板
所述jupyterlab-TOC扩展增加该罐号标题,崩溃的部分,和被用于导航(见下文的gif用于演示)ToC的作为侧板。使用以下命令安装
jupyter labextension install @jupyterlab/toc
在笔记本中作为单元
目前,这可以按照Matt Dancho的回答手动完成,也可以通过
经典笔记本界面中的toc2 jupyter笔记本扩展名自动完成。
首先,将toc2作为jupyter_contrib_nbextensions捆绑包的一部分进行安装:
conda install -c conda-forge jupyter_contrib_nbextensions
然后,启动JupyterLab,转到Help --> Launch Classic Notebook
,然后打开要在其中添加ToC的笔记本。单击工具栏中的toc2符号以打开浮动ToC窗口(如果找不到它,请参见下面的gif),单击齿轮图标,然后选中“添加笔记本ToC单元”框。保存笔记本,然后在JupyterLab中打开ToC单元。插入的单元格是带有html的markdown单元格,它不会自动更新。
可以在经典笔记本启动页面的“ Nbextensions”选项卡中配置toc2的默认选项。例如,您可以选择对标题进行编号并将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
请记住,可以通过在笔记本单元格前面加上一个感叹号来添加外壳命令!
,因此您可以将此行粘贴在笔记本计算机的最后一个单元格中,并且在单击“运行所有单元格”时始终生成带有ToC的HTML文件(或您希望获得的任何输出nbconvert
)。这样,您可以jupyterlab-toc
在工作时使用笔记本导航,并且仍然可以在导出的输出中获得ToC,而不必诉诸使用经典的笔记本界面(对于我们中的纯粹主义者而言)。
请注意,如上所述配置默认的toc2选项将不会更改的格式nbconver --to html_toc
。您需要在经典笔记本界面中打开笔记本,以便将元数据写入.ipynb文件(nbconvert在导出时读取元数据)。或者,您可以通过JupyterLab侧栏的Notebook工具选项卡手动添加元数据。喜欢:
"toc": {
"number_sections": false,
"sideBar": true
}
如果您希望使用GUI驱动的方法,则应该能够打开经典笔记本并单击File --> Save as HTML (with ToC)
(尽管请注意,该菜单项对我不可用)。
上面的gif从扩展的相应文档中链接。