在jekyll模板中给出以下代码
{% assign resource = site.data.resources | where: "id", page.resource %}
Run Code Online (Sandbox Code Playgroud)
派生以下哈希:
{
"id"=>"resource-1234",
"title"=>"testing",
"description"=>"Quis autem vel eum iure reprehenderit qui"
}
Run Code Online (Sandbox Code Playgroud)
如何使用liquid来输出标题键的值?我尝试过以下方法:
{{ resource }} # outputs the hash
{{ resource.title }} # nil
{{ resource["title"] }} # nil
Run Code Online (Sandbox Code Playgroud)
实际上,where过滤器返回一个数组.
当您打印此数组时{{ resource }},它只是一个接一个地输出所有项目.在这里它打印你的哈希,这让你认为这resource是一个哈希.
对于调试,您可以使用{{ resource | inspect }}它将返回:
[{"id"=>"resource-1234", "title"=>"testing", "description"=>"Quis ..."}]
Run Code Online (Sandbox Code Playgroud)
在这里你看到括号,你知道这resource是一个数组.
在您的情况下,您知道只有一个(或零)资源链接到您的页面.为了只获取第一个资源哈希,您可以:
{% assign resource = site.data.resources | where: "id", page.resource | first %}
Run Code Online (Sandbox Code Playgroud)
现在{{ resource.title }}回来了testing.
酷不是吗?
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |