在 hexo 中馍忽,你會發(fā)現(xiàn)我們不能用 Latex
語法來書寫數(shù)學(xué)公式棒坏,這對于書寫學(xué)術(shù)博客來說是很大的不便,因為我們會經(jīng)常碰到很多的數(shù)學(xué)公式推導(dǎo)遭笋,但是我們可以通過安裝第三方庫來解決這一問題坝冕。
第一步: 使用Kramed代替 Marked
hexo
默認(rèn)的渲染引擎是 marked
,但是 marked
不支持 mathjax
瓦呼。 kramed
是在 marked
的基礎(chǔ)上進(jìn)行修改喂窟。我們在工程目錄下執(zhí)行以下命令來安裝 kramed
.
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
然后,更改<your-project-dir>/node_modules/hexo-renderer-kramed/lib/renderer.js央串,更改:
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');
}
為:
// Change inline math rule
function formatText(text) {
return text;
}
第二步: 停止使用 hexo-math
首先磨澡,如果你已經(jīng)安裝 hexo-math
, 請卸載它:
npm uninstall hexo-math --save
然后安裝 hexo-renderer-mathjax 包:
npm install hexo-renderer-mathjax --save
第三步: 更新 Mathjax 的 CDN 鏈接
首先,打開<path-to-your-project>/node_modules/hexo-renderer-mathjax/mathjax.html
然后质和,把<script>
更改為:
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
第四步: 更改默認(rèn)轉(zhuǎn)義規(guī)則
因為 hexo
默認(rèn)的轉(zhuǎn)義規(guī)則會將一些字符進(jìn)行轉(zhuǎn)義稳摄,比如 _
轉(zhuǎn)為 <em>
, 所以我們需要對默認(rèn)的規(guī)則進(jìn)行修改.
首先, 打開<path-to-your-project/node_modules/kramed/lib/rules饲宿、inline.js,
然后厦酬,把:
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
更改為:
escape: /^\\([`*\[\]()# +\-.!_>])/,
把
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
更改為:
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
第五步: 開啟mathjax
在主題 _config.yml
中開啟 Mathjax, 找到 mathjax
字段添加如下代碼:
mathjax:
enable: true
這一步可選瘫想,在博客中開啟 Mathjax
仗阅,, 添加以下內(nèi)容:
---
title: Testing Mathjax with Hexo
category: Uncategorized
date: 2017/05/03
mathjax: true
---
通過以上步驟国夜,我們就可以在 hexo
中使用 Mathjax
來書寫數(shù)學(xué)公式减噪。