找了好几篇博客,参考了一下各个指南,终于搞定了公式渲染的问题。
原因
Hexo 默认使用 hexo-renderer-marked 引擎渲染网页,该引擎会把一些特殊的 markdown 符号转换为相应的 html 标签,比如在 markdown 语法中,下划线_代表斜体,会被渲染引擎处理为标签。
解决方法
更换 Hexo 的 markdown 渲染引擎
将原hexo-renderer-marked 引擎修改为 hexo-renderer-kramed1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
然后打开博客根目录,在node_modules\kramed\lib\rules\inline.js修改变量1
2
3
4
5//escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
escape: /^\\([`*\[\]()#$+\-.!_>])/,
//em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
在 Next 主题中开启 MathJax 开关
在主题下找到 _config.yml 配置文件,把 math 默认的 false 修改为true1
2
3
4
5
6
7
8
9
10# Math Equations Render Support
math:
enable: true
# Default(true) will load mathjax/katex script on demand
# That is it only render those page who has 'mathjax: true' in Front Matter.
# If you set it to false, it will load mathjax/katex srcipt EVERY PAGE.
per_page: true
engine: mathjax
最后在文章头打开mathjax开关1
2
3
4title: Hello World III
date: 2018-03-17 22:14:51
tags:
mathjax: true
大功告成