最近几天一直在弄个人网站,用的是Hexo+Github。
配置完next主题后,发现next无法处理数学公式,查了下发现还要安装数学公式渲染引擎。中途踩了一些坑,体现为用命令行hexo -g一直报错pandoc exited with code null(问题详细报告),现记录如下。
目前Next提供两种数学公式渲染引擎,分别是Mathjax和Katex。由于Katex所支持的东西没有Mathjax全面,所以我这里采用的是Mathjax。
1. 使用Mathjax作为渲染器
使用 Mathjax 进行数学公式渲染,需要使用 hexo-renderer-pandoc 或者 hexo-renderer-kramed (官方不推荐)作为 Hexo 的 Markdown 渲染器。
npm un hexo-renderer-marked # 先将原有的渲染器卸载
npm i hexo-renderer-pandoc # 安装pandoc
2. 修改配置文件
在主题配置文件_config.yml 中找到math关键词,将mathjax的false改为true。注意,mathjax和katex只能有一个置为true。
注意:还有一个per_page选项,默认为false,表示只对文章开头(front-matter)含有mathjax: true语句的文章进行渲染。为true表示会所有文章进行渲染,不管有没有加上mathjax: true语句。建议置为true,否则一篇一篇文章加上这条语句太麻烦了😡。
3. 本地安装pandoc
使用pandoc还需要在本地安装,在官网上下载pandoc,直接安装即可。
安装完后,记得电脑重启一下,我之前就是没安装pandoc以及没重启导致出错,然后hexo -g一直提示pandoc exited with code null的,重启之后,就能正确生成html文件了。
重启后,hexo clean,hexo g,hexo s就可以看到效果了~
假如命令行没报错,能打开网站,但数学公式仍未正确生成,检查per_page是否置为true,或者文章开头是否有写mathjax: true。
参考资料:官方github文档