啊昨天满心欢喜得搭好了hexo,配啊调啊一些奇怪的东西,最后终于开起来正常了,以为可以愉快得写博客了= =

后来才发现了太过naive了啊 = =。

公式显示我尝试换了pandoc的渲染,装了pandochexo-renderer-pandoc,卸载了原装的hexo-renderer-marked,但是本地hexo s虽然显示正常,但是deploy过后网站上的就只有将$$转义成\[\]的东西 = =

然后就又用hexo-math,它告诉我它已经deprecated了 = =

但是能显示我就感激不尽了 = =

然后就是markdownmathJax的冲突了 = =

改了一发marked.js = =

感觉这样可移植性就变得糟糕了= =

但是现在怎么说看起来也算还好了吧 = =

最后用的办法是:

修改hexo的渲染源码: nodes_modules/marked/lib/marked.js:

  • 去掉\\的额外转义
  • 将em标签对应的符号中,去掉_,因为markdown中有*可以表示斜体,就去掉了。

具体思路参考了使Marked.js与MathJax共存,
打开nodes_modules/marked/lib/marked.js: 第一步: 找到下面的代码:

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

改为:

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

这样就会去掉\\的转义了。 第二步: 找到em的符号:

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

改为:

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

去掉_的斜体含义,这样就解决了。这种方式指标不治本,因为保证不了还可能有其它的字符会冲突,这样的话,还需要返回去接着修改。