'Expected end_of_string but found colon' 链接 where 过滤器时出错

'Expected end_of_string but found colon' error when chaining where filters

我刚刚尝试将我的 Jekyll 版本从 3.4.3 提升到 3.8.5,当我 运行 构建时,我收到此错误:

 Liquid Warning: Liquid syntax error (line 37): Expected end_of_string but found colon in "{{site.documents | where: "belongs_to_group", page.group | where: "lang": lang | sort: "page.date" | reverse }}"

链接 where 过滤器有什么变化?我似乎无法在文档中找到任何内容。

当我只包含一个 where 过滤器时,变量得到正确分配。

{% assign boxes = site.documents | where: "belongs_to_group", page.group %}

我一添加另一个,就出现上述错误。

这里有一个完整的例子,说明我如何在以前的 Jekyll 版本中分配 veraiable。

{% assign boxes = site.documents | where: "belongs_to_group", page.group | where: "lang": lang | where_exp: "item", "item.start_datetime > site.time" | sort: "start_datetime" %}

如何在新的 Jekyll 版本中添加这些过滤器?

看起来这里的问题可能出在这段代码中:

where: "lang": lang

键和值应该用逗号分隔 (Jekyll docs)。

where: "lang", lang

你的另一个 where 子句格式正确,这就是为什么当你只包含那个子句时它不会抛出错误。