对复杂公式的支持不够好,简单公式可以显示,复杂编译错误,验证表明,问题不是mathjax.js导致,是默认hexo引擎编译导致html文本转义错误。
Hexo默认使用"hexo-renderer-marked"引擎渲染网页,该引擎会把一些特殊的markdown符号转换为相应的html标签,比如在markdown语法中,下划线'_'代表斜体,会被渲染引擎处理为<em>
标签
因为类Latex格式书写的数学公式下划线 '_' 表示下标,有特殊的含义,如果被强制转换为<em>
标签,那么MathJax引擎在渲染数学公式的时候就会出错。例如,x_i
在开始被渲染的时候,处理为x<em>i</em>
,这样MathJax引擎就认为该公式有语法错误,因为不会渲染。
类似的语义冲突的符号还包括'*', '{', '}', '\'等。
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
node_modules\kramed\lib\rules\inline.js
\,{,}
的转义escape
// escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, escape: /^\\([`*\[\]()#$+\-.!_>])/,hexo cl && hexo g && hexo s
查看效果
Debug_config.yml
下设置mathjax
为true
mathjax
---
title: 我是标题
date: 2020-08-15 23:18:50
tags:
mathjax: true
--