如何在hexo中支持公式

1. 概述

本文介绍了在各种hexo主题上支持markdown公式的方法。

2. 参考文章

感谢大神!在任意的hexo主题支持数学公式

3. 详述

3.1. 安装MathJax

MathJax就是用来渲染数学公式的js引擎。在这之前需要卸载自带的hexo-math以避免冲突。

1
2
npm uninstall hexo-math --save
npm install hexo-renderer-mathjax --save

3.2. 更新MathJax的CDN链接

打开node_modules/hexo-renderer-mathjax/mathjax.html,将最后一行CDN地址修改为:

1
<script src="//cdn.bootcss.com/mathjax/2.7.3/MathJax.js?config=TeX-MML-AM_CHTML"></script>

3.3. 更换默认渲染引擎

Hexo默认的渲染引擎hexo-renderer-marked对MathJax的支持很不好,修改为kramed引擎:

1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save

3.4. 更改转移规则

因为hexo默认的转义规则会将一些字符进行转义,比如_转为<em>,所以需要对默认的规则进行修改。

打开node_modules/kramed/lib/rules/inline.js,把:

1
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,

修改为:

1
escape: /^\\([`*\[\]()# +\-.!_>])/,

把:

1
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

修改为:

1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

3.5. 使用hexo-filter-mathjax

安装hexo-filter-mathjax

1
npm install hexo-filter-mathjax --save

对于需要开启公式支持的博文,在开头处添加mathjax: true这行即可。