感谢博客:在Hexo中渲染MathJax数学公式、Hexo博客中使用Latex、在Hexo中渲染MathJax数学公式
Hexo渲染LaTeX公式关键
Hexo渲染主题的两个重要因素:mathjax和kramed,前者是数学公式渲染引擎,后者是Hexo的markdown渲染引擎,hexo默认渲染引擎是marked,但是它不支持mathjax,因此需要替换引擎。
一、Hexo添加mathjax
-
如果hexo安装有
hexo-math
,需要先卸载它。卸载命令:npm uninstall hexo-math --save
-
安装mathjax,安装命令:
npm install hexo-renderer-mathjax --save
-
hexo主题开启mathjax:
进入主题目录,编辑
_config.yml
,开启mathjax:# MathJax Support mathjax: enable: true per_page: true
-
hexo博客开启mathjax:
博客文章的开头加入
mathjax:true
,具体如下:--- title: Hexo渲染LaTeX公式关键 date: 2020-09-30 22:27:01 mathjax: true --
二、hexo切换kramed引擎
-
卸载marked引擎
npm uninstall hexo-renderer-marked --save
-
安装kramed引擎
npm install hexo-renderer-kramed --save
-
修改引擎bug
修改文件
/node_modules\kramed\lib\rules\inline.js
中escape
和em
两行,具体修改如下:// escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, escape: /^\\([`*\[\]()#$+\-.!_>])/,
这一步是在原基础上取消了对,{,}的转义(escape)。
同时把第20行的em变量也要做相应的修改。// em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
重新启动hexo:
hexo clean && hexo g -d
问题得到解决。