1. 概述
本文介绍了在各种hexo主题上支持markdown公式的方法。
2. 参考文章
感谢大神!在任意的hexo主题支持数学公式
3. 详述
3.1. 安装MathJax
MathJax就是用来渲染数学公式的js引擎。在这之前需要卸载自带的hexo-math以避免冲突。
1 | npm uninstall hexo-math --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 | npm uninstall hexo-renderer-marked --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
1 | npm install hexo-filter-mathjax --save |
对于需要开启公式支持的博文,在开头处添加mathjax: true
这行即可。