【问题标题】:jekyll/liquid: given key access value from hash in templatejekyll/liquid:从模板中的哈希给定密钥访问值
【发布时间】:2016-07-15 12:47:42
【问题描述】:

在 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 键的值?我尝试了以下方法:

{{ resource }}     # outputs the hash
{{ resource.title }}   # nil
{{ resource["title"] }}   # nil

【问题讨论】:

    标签: jekyll liquid


    【解决方案1】:

    其实where过滤器返回一个数组。

    当您使用{{ resource }} 打印此数组时,它只是一个接一个地输出所有项目。它在这里打印你的哈希,这让你认为resource 是一个哈希。

    对于调试,您可以使用{{ resource | inspect }} 将返回:

    [{"id"=>"resource-1234", "title"=>"testing", "description"=>"Quis ..."}]
    

    在这里你看到括号,你知道resource 是一个数组。

    在您的情况下,您知道只有一个(或零个)资源链接到您的页面。为了只获取第一个资源哈希,您可以这样做:

    {% assign resource = site.data.resources | where: "id", page.resource | first %}
    

    现在{{ resource.title }} 返回testing

    是不是很酷?

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2013-08-29
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 2012-03-10
      相关资源
      最近更新 更多