Jupyter Book更新构建引擎,支持更强大的MyST Markdown语法

将可计算内容编排成书的开源项目Jupyter Book,已经交由Executable Book Project支持,并且现在发布了最新版本,更换构建引擎支持,使得构建更为快速,支持强大的MyST Markdown语言,并允许用户将书籍输出为更多样的类型。

Jupyter Book是一个方便用来编辑程序与科学相关书籍的开源项目,用户可以在Jupyter Notebook中,完全以Markdown语法撰写,并将其构建成为书籍,其特色是能将包含可计算内容等来源材料,编辑成为具出版水准的书籍、网站和文件。而原本Jupyter Book为Jupyter底下的一个项目,但现在被转移到了Executable Book Project(EBP)之下,EBP是一个Jupyter生态系统的开放社群,专为Jupyter可交互和可执行文件构建开源工具。

新版Jupyter Book最亮眼的功能,便是开始支持MyST(Markedly Structured Text)Markdown语言,而该语言实例了所有Sphinx文件引擎的功能,也就是说,可以在Sphinx执行的功能,就能够使用MyST进行,让用户方便地以Markdown语言撰写科学出版物。

由于Jupyter Notebook所使用的Jupyter Markdown,仅是MyST Markdown的子集,这代表Jupyter Notebook中任何默认的Markdown语法,在Jupyter Book中均有效,但如果用户需要用到引用、图表和参照等功能时,便可以在内容加入使用MyST Markdown语法。

旧版Jupyter Book使用Python和Jekyll来构建书本HTML,而新的Jupyter Book则仅使用Python,这简化了构建书籍HTML的程序,另外,新的构建系统利用Jupyter Cache,仅会在程序代码有更新时才执行笔记本内容,并在构建时,插入来自缓存的输出,因此没有更改的程序代码就不会被重新执行,进而节省构建时间。

而且因为使用Sphinx文件引擎,Jupyter Book除了支持HTML网站之外,也能执行更复杂的输出,像是能够利用HTML和LaTeX制作PDF,官方表示,多样格式的支持,让Jupyter Book更具灵活性,能根据用户需求,产生适合的书籍形式。

之所以新版Jupyter Book能有这么多强大的功能,都要归功于全新的堆栈,过去Jupyter Book使用Jekyll构建书籍,但现在则是使用Sphinx文件引擎,且因为Sphinx丰富的生态系统,Jupyter Book能够有效率地利用既存工具创建新功能,也能将开发的组件贡献出来。