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