Closed lxdlam closed 6 years ago
我在本地测试渲染没有遇到这个问题。。 公式渲染如下:
似乎是markdown-it-katex
插件本身的问题,有一些LaTeX token在parse的时候不识别,然后插件会直接保留原文,然后导致下一步parse的时候<
被错误当成了token。
能否提供一个 demo
项目演示这个错误? 我在本地测试没有遇到这种情况。
尝试如下的文本:
也就是说,$\forall p<q, x=p\cdot q\implies 2\le q\le\sqrt{x}<q\le x$是一定满足的
这里面的\implies
是原插件不支持的KaTeX Token,所以这一组公式不会被转换,原插件会自动去除两端的$
然后原格式保留,之后就会有p<q
这里面<
的冲突。
的确出现了这个问题。。我猜测可能有两种情况: 一是markdown-it-katex引用的katex版本过低出现的问题; 二是hexo的渲染顺序,在渲染markdown之前就被其他插件处理,然后报错直接跳出,比如我使用的html-minifier插件。。 渲染如下:
我手动使用0.7.1
的KaTeX库进行渲染,的确是版本过低不支持\implies
等一系列Token的问题。
那么hexo-html-minifier
实际上应该是没问题的,只是老老实实做了它该做的工作而已。
你可以使用这个插件 iktakahiro/markdown-it-katex
参考#10
并引入新版katex.min.css
即可
我在 v1.0.3 版本 替换了默认的 markdown-it-katex
插件,在 v1.0.3 版本只需要引入 katex.min.css
即可
如下的一个公式:
$\forall p<q,p\ne q\land x=p\cdot q$
在parse阶段,<
会被parse成一个HTML Token然后parse报错:手动转义也没用。