覆盖行为:单击 Jupyter 仪表板上的 .ipynb 笔记本,提供(打开)笔记本

Override Behavior: Clicking a .ipynb notebook on the Jupyter Dashboard, serves (opens) the notebook

默认情况下,当在 Jupyter 仪表板上单击 .ipynb 笔记本时,它会在新选项卡中打开该笔记本。 我想覆盖此行为,因此,单击 .ipynb 文件应该只将笔记本 link(应该打开)发送到 custom.js,而不提供(打开)笔记本。

一旦 link 在 custom.js 中可用,我使用眨眼请求将其发送到 C++,然后在不同的浏览器中打开 link。

需要帮助:获取 custom.js 中的 link 并停止笔记本执行

我可以使用一些技巧在 custom.js 中获得 link:$('a')[1]

但我仍然不知道如何阻止 Jupyter 为笔记本提供服务。
这可能吗?通过文档挖掘,我发现了这个 extra_services 但我可以为此目的创建一个处理程序吗?

感谢任何帮助,谢谢。

我找不到正式执行此操作的方法,这里或 Jupyter 社区论坛上都没有答案。

我使用一个不太有效的 hacky 解决方案让它工作,我在这里分享。

过程

  • 将所有 Jupyter 打开函数的目标设置为 _self 而不是 _blank(确保 links 在同一个选项卡中打开,而不是在新选项卡中打开)
  • 使用document.referrer,得到上一页的URL
  • 使用 $('a').href 获取 link 到当前页面
  • 将link发送到当前页面,将link发送到上一页到Cpp
  • 使用 cpp 在新浏览器中加载当前页面 link,将旧浏览器选项卡设置为上一个 link。