博客中不支持Latex是万万不行滴,而Hexo默认的渲染引擎是marked,但是marked不支持mathjax,所以需要更换Hexo的渲染引擎为hexo-renderer-kramed,主要步骤如下:
安装Kramed
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
更改文件配置
打开/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并安装mathjax
卸载hexo-math
npm uninstall hexo-math --save
安装hexo-renderer-mathjax
npm install hexo-renderer-mathjax --save
更新Mathjax配置文件
打开/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>
更改默认转义规则
因为LaTeX与markdown语法有语义冲突,所以 hexo 默认的转义规则会将一些字符进行转义,所以我们需要对默认的规则进行修改.
打开/node_modules\kramed\lib\rules\inline.js
更改后为:
escape: /^\\([`*\[\]()#$+\-.!_>])/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
开启mathjax
打开主题目录下的config.yml
文件(注意这里是所使用主题的yml文件,不是hexo的yml文件)
加入下面这句:
mathjax: true
并且写博客的时候需要开启Latex就需要加上头开启Mathjax:
例如:
title: Python向信号中添加不同强度dB的噪声
date: 2019-10-23 14:05:37
tags: [噪声, ECG]
categories: [Python]
mathjax: true