0%

hexo中使用mathjax的方法

只需五步

可以先换成淘宝的下载源,增加npm下载速度: npm config set registry https://registry.npm.taobao.org

一:使用Kramed 代替 Marked
渲染引擎kramed支持mathjax

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

打开:博客根目录/node_modules/hexo-renderer-kramed/lib/renderer.js
将下面这几句进行更改
1
2
3
4
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');

更改为
1
2
3
4
5
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text;
}

二:使用hexo-renderer-mathjax 代替 hexo-math
1
2
npm uninstall hexo-math --save
npm install hexo-renderer-mathjax --save

三:更新 Mathjax 的 CDN 链接
打开:博客根目录/node_modules/hexo-renderer-mathjax/mathjax.html
将最下面script src=后的url改为
1
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML

四:更改默认转义规则
打开:博客根目录/node_modules/kramed/lib/rules/inline.js
1
2
3
4
//escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,      第11行,将其修改为
escape: /^\\([`*\[\]()#$+\-.!_>])/,
//em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, 第20行,将其修改为
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

五:开启mathjax
在主题的配置文件中,我用的是next主题,那么在其_config.yml中找到mathjax并设置为true
1
2
3
4
5
# MathJax Support
mathjax:
enable: true
per_page: true
cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML

之后再写文章时,加上mathjax: true
1
2
3
4
5
6
---
date: 2017/8/3 18:20:00
tags: hexo
mathjax: true
title: hexo博客MathJax公式渲染
---

链接:
在hexo中使用mathjax的方法