文章概述
在hexo中,你会发现我们不能用Latex语法来书写数学公式,这对于书写学术博客来说是很大的不便,因为我们会经常碰到很多的数学公式推导,但是我们可以通过安装第三方库来解决这一问题,本篇文章介绍配置步骤。
Hexo支持Mathjax的配置步骤如下:
使用Kramed渲染引擎
第一步: 使用Kramed代替Marked
- hexo 默认的渲染引擎是 marked,但是 marked 不支持 mathjax。 kramed 是在 marked 的基础上进行修改。我们在工程目录下执行以下命令来安装kramed:
1 | //卸载原来的渲染引擎 |
- 更改your-project/node_modules/hexo-renderer-kramed/lib/renderer.js,更改内容如下:
1 | // Change inline math rule |
改为:
1 | // Change inline math rule |
使用mathjax渲染库
第二步: 停止使用hexo-math,配置hexo-renderer-mathjax
- 安装和卸载:
1 | //首先,如果你已经安装 hexo-math, 请卸载它: |
- 更新Mathjax的CDN链接:
打开your-project/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 默认的转义规则会将一些字符进行转义,比如 _ 转为 , 所以我们需要对默认的规则进行修改.
- 打开your-project/node_modules/kramed/lib/rules/inline.js文件:
1> 修改:
1 | escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, |
更改为:1
escape: /^\\([`*\[\]()# +\-.!_>])/,
2> 修改:
1 | em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
更改为:1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
主题配置开启mathjax
在主题的配置文件 _config.yml 中开启 Mathjax, 找到 mathjax 字段添加如下代码:
1 | mathjax: |
博客中使用数学公式
在博客的头部配置中开启Mathjax,添加以下内容:
1 | --- |
效果如下:
$\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$