关于 hexo 对文章渲染解析{{}}的问题

2018-11-21 22:04:04 +08:00
 niuxuewei

大家有没有在用 hexo 的时候遇到在正文中对“{{任何内容}}”解析不正常的问题,我因为经常写数学公式,所以经常会碰到这种问题, 目前唯一的解决办法就是 escape bracket,需要在每一对花括号加{% raw %}这种方式,一旦公式增多一个一个加又太麻烦,大家有什么解决方案? 最近在考虑用 hugo 替换基于 nodejs 的 hexo,但是 hugo 的主题基本上没有想 next 那么完善的,不是缺这个就是少那个…

3792 次点击
所在节点    程序员
22 条回复
MonoLogueChi
2018-11-21 22:23:43 +08:00
用的什么渲染组件,装了哪些插件,主题用的是什么,这些都用影响到
niuxuewei
2018-11-21 22:39:39 +08:00
@MonoLogueChi hexo-renderer-pandoc
这个好像是跟 hexo 有关
stebest
2018-11-21 23:02:39 +08:00
hexo 不是有 mathjax 插件写公式么
mathzhaoliang
2018-11-21 23:08:55 +08:00
hexo 默认的 markdown 渲染器是 hexo-renderer-marked,会先按照 markdown 语法解析,然后才是 latex,所以会有冲突。换成 hexo-renderer-pandoc,然后安装 pandoc 就行。
rabbbit
2018-11-21 23:26:34 +08:00
试试这个,记得装之前备份,因为要卸掉默认的渲染器
https://github.com/CHENXCHEN/hexo-renderer-markdown-it-plus
niuxuewei
2018-11-22 06:58:55 +08:00
@stebest 数学公式没问题 但是遇到这样的$\sqrt{{x^2}+{y^2}}$ 再使用 hexo g 就会出现解析错误 原因是 hexo 会把{{*}}当作变量解析…
niuxuewei
2018-11-22 07:00:24 +08:00
@mathzhaoliang 冲突问题已经通过 pandoc 解决了 可以参见上一条回复
niuxuewei
2018-11-22 07:06:32 +08:00
@rabbbit 好滴 我试试
mathzhaoliang
2018-11-22 08:22:35 +08:00
@niuxuewei 你是想输出什么?内层的 {} 表示求小数部分吗?
niuxuewei
2018-11-22 09:12:54 +08:00
@mathzhaoliang 我想输出数学公式用 latex 语法 比如 $\sqrt{{x^2}+{y^2}}$ 这是根号下 x 方+y 方 你可以试试把这个代码加在你的正文里 然后用 hexo g 生成就会报错
niuxuewei
2018-11-22 09:16:56 +08:00
niuxuewei
2018-11-22 09:20:14 +08:00
@mathzhaoliang 如果去掉把{{}}消去 就可以解决这个问题![]( http://res.niuxuewei.com/2018-11-22-011816.png)
或者加入 escape bracket 类似这样![]( http://res.niuxuewei.com/2018-11-22-011952.png)
mathzhaoliang
2018-11-22 11:49:34 +08:00
@niuxuewei 所以不是 hexo 的问题,是你的输入不对。
FEDT
2018-11-22 11:57:02 +08:00
遇到过。。没想到现在还没解决
niuxuewei
2018-11-22 12:16:45 +08:00
@FEDT 这应该是 hexo 底层设计问题 想换成 hugo 生态圈太糟糕了 愁人…
no1xsyzy
2018-11-22 13:11:12 +08:00
没接触过,但试试这个?
$\sqrt{ {x^2}+{y^2} }$
no1xsyzy
2018-11-22 13:12:10 +08:00
@no1xsyzy
$\sqrt{ {x^2}+{y^2} }$
把{{和}}中间加个空格,math 模式下空格是自动忽略的
niuxuewei
2018-11-22 13:22:50 +08:00
@no1xsyzy 卧槽 真的可行 谢谢!!!!
niuxuewei
2018-11-22 13:27:55 +08:00
@no1xsyzy 我测试只需要破坏前面的{{就行,后面的}}可以保留,像这样$\sqrt{ {x^2}+{y^2}}$,回头可以写一个 py 脚本自动化解决这个问题
stebest
2018-11-22 16:36:51 +08:00
@niuxuewei 是你装了什么插件吧,我写的没问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510207

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX