hexo next主题 markdown数学公式不正常显示问题

近期写博客,遇到有些地方需要写数学公式,因为一直没用过所以初次使用遇到了问题。

使用markdown编写的公式在hexo博客中并不会正常显示出来。
网上查阅后发现原因如下:

Hexo默认使用”hexo-renderer-marked”引擎渲染网页,该引擎会把一些特殊的markdown符号转换为相应的html标签,比如在markdown语法中,下划线’‘代表斜体,会被渲染引擎处理为标签。
因为类Latex格式书写的数学公式下划线 ‘
‘ 表示下标,有特殊的含义,如果被强制转换为标签,那么MathJax引擎在渲染数学公式的时候就会出错。例如,$x_i$在开始被渲染的时候,处理为$xi$,这样MathJax引擎就认为该公式有语法错误,因为不会渲染。
类似的语义冲突的符号还包括’*’, ‘{‘, ‘}’, ‘'等。
https://www.jianshu.com/p/d87d7d2dcea9

解决方法:

  1. 首先需要安装Mathjax插件:
    1
    npm install hexo-math --save
  2. 接着更换Hexo的Markdown渲染引擎
    1
    2
    npm uninstall hexo-renderer-marked --save
    npm install hexo-renderer-kramed --save
  3. 之后进入博客根目录下的node_modules\kramed\lib\rules\inline.js
    找到escape,将其后的内容改为:
    1
    escape: /^\\([`*\[\]()#$+\-.!_>])/,
    同理,修改em为:
    1
    em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
  4. 最后进入主题下的_config.yml配置文件中,搜索math,我的在497行
    修改enable为true,如果不修改的话也行,那就是默认每个页面都需要渲染,而改为true之后在写文章时
    在文章头部加上
    1
    mathjax: true 
    这样可以调高访问速度

hexo next主题 markdown数学公式不正常显示问题
https://shanhainanhua.github.io/2019/09/18/hexo-next主题-markdown数学公式不正常显示问题/
作者
wantong
发布于
2019年9月18日
许可协议