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.

很酷吧?