这个应该算法是 hexo 的一个BUG或者说是hexo的不足。正常情况下,我们将 markdown 文件渲染为 html 时,需要保护一些特别部分不被渲染,比如说代码块与公式。
很明显这块代码不应该被渲染,公式也是如此,但是对于复杂的公式,可能存在大公式里包含小公式的情况,hexo 有可能只渲染子模块,比如:
所以接下来就是算法设计部分,我们拿到的是markdown 的文字,在渲染前进行 过滤处理。
以下内容的概念就是在 “before_post_render” 时触发的代码,即对所有的博客进行渲染前的工作。
1. 将原文划分为 “代码块” 与 “非代码块” 两部分。如果是代码块的公式,不做处理。比如 ```bash 中的内容。
2. 非代码块的内容根据 两个美元符号 $$ 进行 split,再对每一个分割块进行处理。
如果觉得别人的主题不够符合自己的喜好,那就自己写个主题。
如果觉得 hexo 渲染可能存在问题,那就自己写脚本纠正官方的问题。
如果觉得本文有用,请点个赞支持一下吧~ 感谢!