HTML锚定在Github上的Jupyter笔记本中

时间:2016-06-30 20:40:15

标签: html github ipython markdown jupyter

因此,有很多关于在markdown中创建锚点以及在笔记本中创建内部table-of-contents-type锚点的内容。我需要的是能够从外部源访问Github笔记本中的锚点,例如:

https://github.com/.../mynotebook.ipynb#thiscell

我有很多以这种方式托管的交互式教程,还有一本我希望能够链接到笔记本部分的手册。我可以使用以下方法将锚标记添加到markdown单元格中:

<a id='thiscell'></a> 

但是当我尝试使用上面写的链接时,它只是将笔记本加载到顶部,就好像没有对锚点的引用一样。

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。作为一种解决方法,我已将笔记本的渲染委托给http://nbviewer.jupyter.org。这只是提供其GitHub 公共网址并点击Go!

当然,内部链接仍然无法在GitHub下运行,但我现在在网络上的某个地方有一个正常运行的笔记本,这是我最初想要的。

我希望这也适用于你的情况。

答案 1 :(得分:-1)

GitHub使用单独的域render.githubusercontent.com渲染笔记本,并将输出集成到nested frame中。这意味着GitHub URL上的任何锚都不起作用,因为框架文档完全是另一个URL。

此外,带边框的内容不容易重复使用,因为这样会导致笔记本计算机的缓存渲染具有有限的生命周期。您不能依靠它停留在后面进行链接!

因此,如果您需要能够链接到笔记本中的各个部分,那么使用Jupyter笔记本查看器服务https://nbviewer.jupyter.org/会更好。它支持显示来自任何公共URL的笔记本,包括GitHub托管的存储库和GitHub要点。您也可以只输入GitHub用户名(或username/repository)以快速访问。

此笔记本查看器的功能比GitHub使用的功能丰富得多。 GitHub杀死所有嵌入式JavaScript,并去除几乎所有HTML属性。任何嵌入式动画都是正确的。但是Jupyter nbviewer服务直接支持这些功能。

例如在nbviewer上比较这两个笔记本:

在GitHub上具有相同的笔记本

第一个在结尾处包含一个动画,第二个包含一个复杂的表,通过使用一些HTML样式和锚链接可以使该表更易于阅读。