这是我的方法,虽然很笨重,但在github中可用:
放入第一个笔记本单元格,即导入单元格:
from IPythonTOC import IPythonTOC
toc = IPythonTOC()
在导入单元之后的某处,放入 genTOCEntry 单元,但不要运行它:
''' if you called toc.genTOCMarkdownCell before running this cell,
the title has been set in the class '''
print toc.genTOCEntry()
在 genTOCEntry 单元格下方,将 TOC 单元格作为降价单元格:
<a id='TOC'></a>
#TOC
随着笔记本的开发,在开始新部分之前放置这个 genTOCMarkdownCell:
with open('TOCMarkdownCell.txt', 'w') as outfile:
outfile.write(toc.genTOCMarkdownCell('Introduction'))
!cat TOCMarkdownCell.txt
!rm TOCMarkdownCell.txt
将 genTOCMarkdownCell 向下移动到笔记本中要开始新部分的位置,并将 genTOCMarkdownCell 的参数作为新部分的字符串标题,然后运行它。在它之后添加一个降价单元格,并将 genTOCMarkdownCell 的输出复制到开始新部分的降价单元格中。然后转到笔记本顶部附近的 genTOCEntry 单元格并运行它。例如,如果您如上所示为 genTOCMarkdownCell 设置参数并运行它,您会将此输出粘贴到新索引部分的第一个 markdown 单元格中:
<a id='Introduction'></a>
###Introduction
然后,当您转到笔记本顶部并运行 genTocEntry 时,您将获得输出:
[Introduction](#Introduction)
复制此链接字符串并将其粘贴到 TOC 降价单元格中,如下所示:
<a id='TOC'></a>
#TOC
[Introduction](#Introduction)
编辑 TOC 单元格以插入链接字符串,然后按 shift-enter 后,指向新部分的链接将作为 Web 链接出现在笔记本目录中,单击它将浏览器定位到新部分。
我经常忘记的一件事是单击目录中的一行会使浏览器跳转到该单元格,但不会选择它。当我们单击 TOC 链接时,无论处于活动状态的单元格仍然处于活动状态,因此向下或向上箭头或 shift-enter 指的是仍然处于活动状态的单元格,而不是我们通过单击 TOC 链接获得的单元格。