带有 "contains" 表达式的 Jekyll `where_exp` 过滤器
Jekyll `where_exp` filter with "contains" expression
我正在为我的 Jekyll 网站创建一个作者页面。在此页面上,我想显示该特定作者撰写的所有帖子。
我的帖子是这样的:
title: "Some title"
authors: [author1, author2]
为了保留作者列表,我使用了集合。
一位作者看起来像这样:
short: author1
name: "Author 1 Full Name"
现在 author1
我想找到该作者的所有文章。我正在尝试为此使用 where_exp
:
{% assign articles = site.posts | where_exp: "authors", "authors contains page.short" %}
在这种情况下,page.short
包含 author1
。
但是列表 articles
是空的。您知道可能是什么问题吗?
你的过滤器语法有问题,可以参考使用方法in the documentation。
你可以看到它被用作
{{ site.members | where_exp:"item", "item.projects contains 'foo'" }}
但是在您的尝试中,您没有定义 contains
查询的项目字段。
代码中
where_exp:"item", "item.projects contains 'foo'"
我们确实从数组中定义了一个 item
,然后我们希望这个 item
有一个字段 projects
;我们只想要包含项目 foo
的那个
在您的代码中
where_exp: "authors", "authors contains page.short"
您是说 item
实际上称为 authors
并且您希望项目 本身 包含 page.short
更正确的方法是:
site.posts | where_exp: "post", "post.authors contains page.short"
因为你的数组 site.posts
的 items 实际上是 posts
,所以它的 item 是post
.
然后,在 post 上,您期望字段 authors
,因此 post.authors
包含特定字符串。
我正在为我的 Jekyll 网站创建一个作者页面。在此页面上,我想显示该特定作者撰写的所有帖子。
我的帖子是这样的:
title: "Some title"
authors: [author1, author2]
为了保留作者列表,我使用了集合。
一位作者看起来像这样:
short: author1
name: "Author 1 Full Name"
现在 author1
我想找到该作者的所有文章。我正在尝试为此使用 where_exp
:
{% assign articles = site.posts | where_exp: "authors", "authors contains page.short" %}
在这种情况下,page.short
包含 author1
。
但是列表 articles
是空的。您知道可能是什么问题吗?
你的过滤器语法有问题,可以参考使用方法in the documentation。
你可以看到它被用作
{{ site.members | where_exp:"item", "item.projects contains 'foo'" }}
但是在您的尝试中,您没有定义 contains
查询的项目字段。
代码中
where_exp:"item", "item.projects contains 'foo'"
我们确实从数组中定义了一个 item
,然后我们希望这个 item
有一个字段 projects
;我们只想要包含项目 foo
在您的代码中
where_exp: "authors", "authors contains page.short"
您是说 item
实际上称为 authors
并且您希望项目 本身 包含 page.short
更正确的方法是:
site.posts | where_exp: "post", "post.authors contains page.short"
因为你的数组 site.posts
的 items 实际上是 posts
,所以它的 item 是post
.
然后,在 post 上,您期望字段 authors
,因此 post.authors
包含特定字符串。