在Hexo博客中渲染LaTeX公式
Preface
这是个人在Hexo博客中渲染LaTeX的解决方案。
环境配置如下:
- Node.js:
v17.1.0
- Hexo:
5.4.0
- Butterfly:
4.1.0
- yarn:
1.22.17
Markdown渲染引擎
首先卸载默认的markdown渲染引擎hexo-renderer-marked
:
yarn remove hexo-renderer-marked |
然后安装hexo-renderer-markdown-it
,该渲染引擎基于markdown-it,可以通过更多的Node.js模块扩展markdown语法,更为灵活可控:
yarn add hexo-renderer-markdown-it |
KaTeX引擎
渲染LaTeX公式块可以使用mathjax引擎或者KaTeX引擎。公认KaTeX引擎的性能优于mathjax,因此选用KaTeX引擎。
可以通过安装markdown-it-katex
以支持渲染markdown文件中的LaTeX公式块。安装方法同上。但是值得注意的是,该模块的原作者似乎已经停止维护,因此可以选用其他贡献者的fork,这里推荐@traptitech/markdown-it-katex。
如果需要支持KaTeX引擎的最新特性,可以安装最新版本的KaTeX作为自己博客的依赖:
yarn add katex@latest |
安装好之后,需要进行一些基本配置。
首先,需要配置hexo-renderer-markdown-it
,以启用markdown-it的插件。在_config.yml
中写入如下内容:
markdown: |
然后需要配置NeXT主题,以支持公式的渲染。在_config.butterfly.yml
中找到katex
字段,修改为如下内容:
# KaTeX |
其中per_page
字段设置为false
,是为了只在必要的页面上开启KaTeX渲染,以节省性能。如果某页面上含有LaTeX公式块,需要在对应的markdown文件的front-matter中添加:
katex: true |
如果遇到kaTeX渲染出现问题,可以按照这里提供的方法进行debug。
References
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stephen Zhang's Blog!
评论