Hexo中的Markdown对于大部分的公式都可以渲染成功,然而对于部分公式,由于Markdown语法和LeTeX语法有冲突,因此造成部分公式内容被marked先转义,导致公式渲染失败,经过权衡,决定放弃部分Markdown功能,确保LeTeX的正确。该冲突主要是由于对\和_的转义造成的。找到marked脚本文件
C:\Users\maple\AppData\Roaming\npm\node_modules\hexo\node_modules\marked\lib\marked.js
,先备份一下,然后修改
escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,
修改为:
escape: /^\\([`*\[\]()# +\-.!_>])/,
return '<em>' + text + '</em>';
修改为:
return '_' + text + '_';
经测试,我需要用到的所有公式都可以显示,且未发现Markdown有明显变化。说明此种方法切实可行。