【发布时间】:2016-02-24 22:04:24
【问题描述】:
我最近从使用纸笔系统为我的微积分 II 课程记笔记转为使用 Jupyter(以前称为 iPython)笔记本。有什么不同!
无论如何,作为一个通过视觉演示学得最好的人,我真的很想在我的笔记本中嵌入一些交互式Desmos 图表(对于不熟悉 Desmos 的任何人来说,它是一个非常强大但又易于-使用基于网络的图形计算器)。
不幸的是,iPython/Jupyter notebook security model 阻止了嵌入在 Markdown 单元格中的 JavaScript 的执行。 HTML Sanitization 库(我相信是Google Caja)会去除您放入 Markdown 单元格的所有 HTML 标记和 JavaScript 代码。
根据note in the security model docs,计划支持某种机制,以允许 HTML/CSS 用于笔记本主题。但该注释没有提及 JavaScript 支持。
我意识到跨站点脚本是一个严重的问题,而且很难防御,但是真的没有办法放松对笔记本作者的安全限制吗?也许在未来可能会为笔记本元数据添加一个配置选项(可以在笔记本会话中进行编辑)以指定允许的标签列表。
与此同时,有没有人知道使用 JavaScript 在笔记本的 Markdown 单元格中嵌入来自第三方 API 的输出的变通方法、hack 或其他方法?
如果要在 Python 单元格中使用 Python 打印适当的 HTML 和 JavaScript 代码,会避免这些限制吗?也许我应该为 Desmos API 编写一个 Python 包装器......
【问题讨论】:
标签: javascript python ipython ipython-notebook jupyter