HTML - Hexo - 取消Hexo下划线转义:因为公式中可能会用到大量下划线(Hexo公式)
HTML - Hexo - 取消Hexo下划线转义:因为公式中可能会用到大量下划线(Hexo公式)
为什么取消下划线的转义
公式中可能会用到很多下划线,然而下划线在Markdown中有特殊含义,例如_a_
代表斜体的a
。
基于Hexo的渲染原理,Markdown源码首先会被Markdown引擎渲染,之后才会被公式引擎渲染。
因此$a_i + b_i$
本应被渲染成$a_i + b_i$,但会被Hexo的Markdown引擎渲染成$a<em>i + b</em>i$
,之后渲染成公式的时候就会很离谱。
所以要取消下划线的转义。
这里不得不吐槽一句,其他支持公式的Markdown编辑器哪个都没有这种错误!
如何取消转义
取消转义只需要将../hexoWorkspace/node_modules/marked/lib/
下的所有文件中的"<em>" + text + "</em>"
替换为"_" + text + "_"
即可。
因此在Linux系统上只需要使用sed
命令(有关sed命令推荐菜鸟教程-sed):
1 |
|
为什么不使用其他的渲染引擎
为了解决Hexo的公式问题,我尝试了很多渲染引擎。但每个引擎都有其不尽人意的地方。有的不支持行内公式,有的不支持公式中出现中文字符,有的…。
想要渲染公式,一个很不错的思路是使用强大的MathJax渲染。
正当我以为终于解决了公式问题的时候,我发现Hexo的Markdown渲染引擎会转义很多东西,$ $
之间的内容也会转义!!!
因此经过多次尝试,终于取消了Hexo对下划线的转义。但是对于公式中的自减运算符a--
的转义,至今还未能解决!
原创不易,转载请附上原文链接哦~
Tisfy:https://blog.letmefly.xyz/2023/07/27/Other-HTML-Hexo-RemoveTheEscapeOfUnderline/
HTML - Hexo - 取消Hexo下划线转义:因为公式中可能会用到大量下划线(Hexo公式)
https://blog.letmefly.xyz/2023/07/27/Other-HTML-Hexo-RemoveTheEscapeOfUnderline/