处理hexo博客中mathjax与marked.js冲突

Posted by Songtoy on 2017-03-14

例如会把‘_’转义成<em>

http://blog.csdn.net/emptyset110/article/details/50123231
以下内容皆摘自上述博客:

  • 针对下划线的问题,我决定取消作为斜体转义,因为marked.js中\也是斜体的意思,所以取消掉的转义并不影响我们使用markdown,只要我们习惯用作为斜体字标记就行了。
  • 针对marked.js与Mathjax对于个别字符二次转义的问题,我们只要不让marked.js去转义\,{,}在MathJax中有特殊用途的字符就行了。
    具体修改方式,用编辑器打开marked.js(在./node_modules/marked/lib/中)

Step 1:

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

>

替换成

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

>

这一步是在原基础上取消了对\,{,}的转义(escape)

Step 2:

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

替换成

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

>

这样一来MathJax就能与marked.js共存了。重启一下hexo看一下吧