jekyll/liquid: 从模板中的散列中给定键访问值
jekyll/liquid: given key access value from hash in template
在 jekyll 模板中给出以下代码
{% assign resource = site.data.resources | where: "id", page.resource %}
导出以下散列:
{
"id"=>"resource-1234",
"title"=>"testing",
"description"=>"Quis autem vel eum iure reprehenderit qui"
}
我如何使用 liquid 来输出 title key 的值?我尝试了以下方法:
{{ resource }} # outputs the hash
{{ resource.title }} # nil
{{ resource["title"] }} # nil
事实上,where
过滤器 return 是一个数组。
当你用{{ resource }}
打印这个数组时,它只是一个接一个地输出所有项目。在这里它打印你的散列,这让你认为 resource
是一个散列。
对于调试,您可以使用 {{ resource | inspect }}
将 return :
[{"id"=>"resource-1234", "title"=>"testing", "description"=>"Quis ..."}]
在这里你看到括号,你知道 resource
是一个数组。
在您的情况下,您知道只有一个(或零个)资源链接到您的页面。为了只获得第一个资源哈希,你可以这样做:
{% assign resource = site.data.resources | where: "id", page.resource | first %}
现在 {{ resource.title }}
returns testing
.
很酷吧?
在 jekyll 模板中给出以下代码
{% assign resource = site.data.resources | where: "id", page.resource %}
导出以下散列:
{
"id"=>"resource-1234",
"title"=>"testing",
"description"=>"Quis autem vel eum iure reprehenderit qui"
}
我如何使用 liquid 来输出 title key 的值?我尝试了以下方法:
{{ resource }} # outputs the hash
{{ resource.title }} # nil
{{ resource["title"] }} # nil
事实上,where
过滤器 return 是一个数组。
当你用{{ resource }}
打印这个数组时,它只是一个接一个地输出所有项目。在这里它打印你的散列,这让你认为 resource
是一个散列。
对于调试,您可以使用 {{ resource | inspect }}
将 return :
[{"id"=>"resource-1234", "title"=>"testing", "description"=>"Quis ..."}]
在这里你看到括号,你知道 resource
是一个数组。
在您的情况下,您知道只有一个(或零个)资源链接到您的页面。为了只获得第一个资源哈希,你可以这样做:
{% assign resource = site.data.resources | where: "id", page.resource | first %}
现在 {{ resource.title }}
returns testing
.
很酷吧?