使Marked.js与MathJax共存
因此我提供一个修改marked.js源码的方式来避开这些问题
- 针对下划线的问题,我决定取消_作为斜体转义,因为marked.js中*也是斜体的意思,所以取消掉_的转义并不影响我们使用markdown,只要我们习惯用*作为斜体字标记就行了。
- 针对marked.js与Mathjax对于个别字符二次转义的问题,我们只要不让marked.js去转义\\\,\\{,\\}在MathJax中有特殊用途的字符就行了。
具体修改方式,用编辑器打开marked.js(在./node_modules/hexo-renderer-marked/node_modules/marked中)
Step1:
1 | escape: /^\\([\\`*{}\[\]()# +\-.!_>])/, |
替换成
1 | escape: /^\\([`*\[\]()# +\-.!_>])/, |
这一步是在原基础上取消了对\\\,\\{,\\}的转义(escape)
Step2:
1 | em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
替换成
1 | em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
这样一来MathJax就能与marked.js共存了。