优先级由前端决定,而不是 IPython。 IPython 将它们全部发送(除非您使用带有 exclude 或 include 关键字的显示。原因是一旦保存笔记本,您可能希望使用具有不同显示优先级顺序的另一个前端打开。
经典笔记本的顺序如下(outputarea.js 第 1080 行):
OutputArea.display_order = [
MIME_JAVASCRIPT,
MIME_HTML,
MIME_MARKDOWN,
MIME_LATEX,
MIME_SVG,
MIME_PNG,
MIME_JPEG,
MIME_GIF,
MIME_PDF,
MIME_TEXT
];
对于 JupyterLab,这有点复杂,每个注册的 mimetype 都可以获得分配给它的等级(并且可能会更改),因为扩展程序可以安装 mime-handler,这取决于您拥有的扩展程序。
Nbconvert 对类似 html 的出口商也有自己的订单:
display_data_priority = List(['text/html', 'application/pdf', 'text/latex', 'image/svg+xml', 'image/png', 'image/jpeg', 'text/markdown', 'text/plain']
对于类似tex的出口商:
'display_data_priority' : ['text/latex', 'application/pdf', 'image/png', 'image/jpeg', 'image/svg+xml', 'text/markdown', 'text/plain']
我为JupyterCon 2017 – Jupyter: Kernels, Protocols, and the IPython Reference Implementation(大约 t=25 分钟)编写了一个演示,以显示笔记本可以有一个下拉菜单来切换每个单元显示哪些表示,哪些仍然需要实际实现和合并如果您有贡献的用途/动机,请选择主分支。