美文网首页
Hexo中渲染MathJax数学公式的问题

Hexo中渲染MathJax数学公式的问题

作者: shenghaishxt | 来源:发表于2019-03-04 19:31 被阅读0次

    本文来自我的个人博客 https://www.zhangshenghai.com/posts/2405/

    在学习机器学习算法的过程中有大量的公式需要渲染,原本使用的是Hexo默认的"hexo-renderer-marked"引擎,现在感觉已经力不从心了,好多复杂的公式都无法渲染,网上关于这个问题的解决方法其实有很多,但这里还是po出我觉得最靠谱的一种方法吧。

    替换默认渲染引擎

    hexo-renderer-kramed 是 hexo-renderer-marked 的Fork修改版,只是在渲染部分进行了修改,首先替换默认渲染引擎:

    npm uninstall hexo-renderer-marked --save
    npm install hexo-renderer-kramed --save
    

    解决语义冲突的问题

    hexo s 启动本地服务器后看到行间公式已经渲染成功了,但一些行内公式还是无法渲染。原因是hexo-renderer-kramed 也有语义冲突的问题。于是来到hexo根目录下,打开node_modules\kramed\lib\rules\inline.js 作相应的修改:

    //escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,  # 第11行
    escape: /^\\([`*\[\]()#$+\-.!_>])/ 
    //em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,  # 第20行
    em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/
    

    重启本地服务器后可以看到问题基本解决了,不过行内公式中针对两个 * 的语义冲突依然存在,查了一圈,发现这个问题目前也没有什么解决方法,不过问题也不太大,直接用 \star 代替就好了。

    相关文章

      网友评论

          本文标题:Hexo中渲染MathJax数学公式的问题

          本文链接:https://www.haomeiwen.com/subject/dahwuqtx.html