利用 IDL 8.5.1 的 HTML 功能创建更丰富的 Jupyter Notebook
14188 文章评分:
5.0
利用 IDL 8.5.1 的 HTML 功能创建更丰富的 Jupyter Notebook
Jim Pendleton 2015年12月3日,星期四
即将发布的 IDL 8.5.1 热修复不仅包含针对 IDL 8.5 中问题的错误修复。
它还包含了一些可能会吸引您注意的新功能。
在 IDL 8.5 中,引入了 Python 桥接器,以实现 IDL 与 Python 之间的无缝互操作。
为了增强此功能,iPython Notebook 内核 也同时发布。在之前的博客文章中,我讨论了一些将图形动画插入 Notebook 的技巧。
IDL 8.5.1 为 Jupyter 界面增加了一项新功能,允许 IDL 程序员直接将 HTML 注入到 Jupyter 网页中。
这为 IDL 用户打开了一个充满创意可能性的新世界。
之前,从 IDL 输出到 Jupyter notebook 的内容,要么是 IDL 的 Direct Graphics 或 IDLgrBuffer 对象生成的图形形式,要么是通过诸如 PRINT 和 HELP 等例程发送到标准输出流的纯文本输出形式。
任何试图通过 PRINT 发送希望被浏览器解析的 HTML(例如 )的尝试,都会在传递过程中被转义。结果会在浏览器中显示字符串字面量,而不是预期的解析结果。
在 IDL 8.5.1 中,增加了一个新的解析步骤,它会识别任何标准输出字符串开头处的""字符串,并会跳过字符转义的步骤,将字面量直接传递给浏览器。该标签必须使用小写字符。
启动一个 Jupyter IDL notebook,并输入
print, 'This is not a bold statement.'
print, '<html><em>But this is a bold statement.</em></html>'

任何有效的 HTML 都是可接受的。例如,您可以直接从 IDL 代码将 JavaScript 写入浏览器。
字符串不会跨多个 PRINT 语句累积。任何您希望被当作 HTML 字面量处理的、通过单个 PRINT 写入的单个字符串,都应使用"..."标签进行界定。
IDL 和桥接器的字符串解析不会执行任何额外的 HTML 验证,也不会警告您语法无效,但目标浏览器在尝试解析该字符串时可能会。