在 hexo 中,你会发现我们不能用Latex
语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题。
第一步: 使用Kramed代替 Marked
hexo
默认的渲染引擎是marked
,但是marked
不支持mathjax
。kramed
是在marked
的基础上进行修改。我们在工程目录下执行以下命令来安装kramed
.
1 | npm uninstall hexo-renderer-marked --save |
然后,更改/node_modules/hexo-renderer-kramed/lib/renderer.js,更改:
1 | // Change inline math rule |
为:
1 | // Change inline math rule |
第二步: 停止使用 hexo-math
首先,如果你已经安装hexo-math
, 请卸载它:
1 | npm uninstall hexo-math --save |
然后安装 hexo-renderer-mathjax 包:
1 | npm install hexo-renderer-mathjax --save |
第三步: 更新 Mathjax 的 CDN 链接
首先,打开/node_modules/hexo-renderer-mathjax/mathjax.html
然后,把<script>
更改为:
1 | <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script> |
第四步: 更改默认转义规则
因为 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])+?)\*(?!\*)/, |
第五步: 开启mathjax
在主题_config.yml
中开启Mathjax
, 找到mathjax
字段添加如下代码(笔者亲自验证,有些博客不需要设置):
1 | mathjax: |
这一步可选,在博客中开启Mathjax
, 添加以下内容:
1 | --- |
通过以上步骤,我们就可以在hexo
中使用Mathjax
来书写数学公式。
转载自
https://blog.csdn.net/u014630987/article/details/78670258