iPython既可以在控制台中以交互模式运行,也可以作为具有更丰富功能的Jupyter HTML笔记本的一部分运行,例如:能够呈现HTML组件......等等。
我正在编写一个Jupyter扩展,它公开了一个返回对象列表的API,我希望这个API在浏览器中返回呈现的HTML,否则返回基于文本的控制台的字符串列表。有没有办法告诉当前的iPython环境(纯文本或HTML)?
答案 0 :(得分:0)
Messaging and Jupyter Notebooks
https://jupyter-client.readthedocs.io/en/latest/messaging.html#messages-on-the-iopub-pub-sub-channel
此数据发布给所有前端。每条消息都可以有多个数据表示;由前端决定使用哪种以及如何使用。单个消息应包含相同信息的所有可能表示。每个表示都应该是一个JSON'able数据结构,并且应该是一个有效的MIME类型。
看起来您应该发送HTML和字符串列表,每个字符串都标记为正确的MIME类型,并让显示前端选择要显示的内容。
这两个链接都提到了一个Comm
对象,它似乎在内核和前端之间建立了一对一的链接。 IOPub
频道是一对多。