Markdown中MathJax转义问题

Markdown本身的特殊符号与Latex中的符号会出现冲突,导致网页中不能正确显示数学公式。

问题

例如:
_的转义,在Markdown中,_是斜体,但是在Latex中,却有下标的意思,就会出现问题;
\\的换行,在Markdown中,\\会被转义为\,这样也会影响影响Mathjax对公式中的\\进行渲染

原因

Hexo默认使用marked.js去解析我们写的Markdown,比如一些符号,_代表斜体,会被处理为<em>标签,
比如x_i在开始被渲染的时候,处理为x<em>i</em>,这个时候MathJax就无法渲染成下标了。

解决

找到nodes_modules/lib/marked/lib/marked.js文件,将文件中代码:

1
escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,

改为:

1
escape: /^\\([`*{}\[\]()# +\-.!_>])/,

找到:

1
em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

改为:

1
em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

做了上边修改后,网页中的数学公式正常显示了。

------------- 本 文 结 束 感 谢 您 的 阅 读 -------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%