Hexo支持Latex格式的数学公式需要做一些配置,因为环境不同,网上的很多教程无法生效,后来找到一个生效的方法,这里对其中的核心内容进行转载,原文见:如何在 hexo 中支持 Mathjax?

1. 使用Kramed代替 Marked

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
5
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');
}

为:

1
2
3
4
// Change inline math rule
function formatText(text) {
return text;
}

2. 停止使用 hexo-math

首先,如果已经安装 hexo-math, 需要卸载:

1
npm uninstall hexo-math --save

然后安装 hexo-renderer-mathjax 包:

1
npm install hexo-renderer-mathjax --save

3. 更新 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>

4. 更改默认转义规则

因为 hexo 默认的转义规则会将一些字符进行转义,比如 _ 转为 , 所以我们需要对默认的规则进行修改。

首先, 打开path-to-your-project/node_modules/kramed/lib/rules/inline.js,

然后,把:

1
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,

更改为:

1
escape: /^\\([`*\[\]()# +\-.!_>])/,


1
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

更改为:

1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

5. 开启mathjax

在主题 _config.yml 中开启 Mathjax, 找到 mathjax 字段添加如下代码

1
2
mathjax:
enable: true

这一步可选,在博客中开启 Mathjax,, 添加以下内容:

1
2
3
4
5
6
---
title: Testing
category: Uncategorized
date: 2017/05/03
mathjax: true
---

通过以上步骤,就可以在 hexo 中使用 Mathjax 书写数学公式。

参考:

如何在 hexo 中支持 Mathjax?

最后更新: 2019年04月19日 21:37

原始链接: http://andersjing.com/2018/11/27/2018-11-27-hexo-math/

× 请打赏~
打赏二维码