wiki中使用数学公式

参考:https://myblackboxrecorder.com/use-math-in-hexo/

1. 安装MathJax

卸载自带的hexo-math以避免冲突

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

2. 更新MathJax的CDN链接

暂时不更新也可以.

打开/node_modules/hexo-renderer-mathjax/mathjax.html, 修改为:

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

3. 更换默认渲染引擎

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

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

4. 更改转义规则

编辑:/node_modules/kramed/lib/rules/inline.js

1
2
#escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
#em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

修改为:

1
2
escape: /^\\([`*\[\]()# +\-.!_>])/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

5. 验证

两种书写方式, 一种居中,一种在靠左边.

1
2
3
{% raw%} \[ (f \ast g)(t) = \int_{-\infty}^{\infty} f(\tau) \cdot g(t - \tau) \, d\tau \] {% endraw %}

$ (f \ast g)(t) = \int_{-\infty}^{\infty} f(\tau) \cdot g(t - \tau) \, d\tau $
\[ (f \ast g)(t) = \int_{-\infty}^{\infty} f(\tau) \cdot g(t - \tau) \, d\tau \]

$ (f \ast g)(t) = \int_{-\infty}^{\infty} f(\tau) \cdot g(t - \tau) \, d\tau $

6. 公式写法

LaTeX写法