hexo next主题 markdown数学公式不正常显示问题
近期写博客,遇到有些地方需要写数学公式,因为一直没用过所以初次使用遇到了问题。
使用markdown编写的公式在hexo博客中并不会正常显示出来。
网上查阅后发现原因如下:
Hexo默认使用”hexo-renderer-marked”引擎渲染网页,该引擎会把一些特殊的markdown符号转换为相应的html标签,比如在markdown语法中,下划线’‘代表斜体,会被渲染引擎处理为标签。
因为类Latex格式书写的数学公式下划线 ‘‘ 表示下标,有特殊的含义,如果被强制转换为标签,那么MathJax引擎在渲染数学公式的时候就会出错。例如,$x_i$在开始被渲染的时候,处理为$xi$,这样MathJax引擎就认为该公式有语法错误,因为不会渲染。
类似的语义冲突的符号还包括’*’, ‘{‘, ‘}’, ‘'等。
https://www.jianshu.com/p/d87d7d2dcea9
解决方法:
- 首先需要安装Mathjax插件:
1
npm install hexo-math --save
- 接着更换Hexo的Markdown渲染引擎
1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save - 之后进入博客根目录下的node_modules\kramed\lib\rules\inline.js
找到escape,将其后的内容改为:同理,修改em为:1
escape: /^\\([`*\[\]()#$+\-.!_>])/,
1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
- 最后进入主题下的_config.yml配置文件中,搜索math,我的在497行
修改enable为true,如果不修改的话也行,那就是默认每个页面都需要渲染,而改为true之后在写文章时
在文章头部加上这样可以调高访问速度1
mathjax: true
hexo next主题 markdown数学公式不正常显示问题
https://shanhainanhua.github.io/2019/09/18/hexo-next主题-markdown数学公式不正常显示问题/