使用jekyll / liquid如何获取yml哈希的所有键

时间:2016-08-12 08:01:44

标签: collections yaml jekyll liquid

我有这个yaml

param1:
  key1: value1
  key2: value2

param2:
  key1: value1
  key2: value2

param3:
  key1: value1
  key2: value2

我如何获得所有带液体的钥匙?

预期结果将是

param1,param2,param3

有什么想法吗?

  • 非常难看的解决方案:集合上的{%for%}并连接密钥......
  • 可接受的替代解决方案:创建液体过滤器"键" ......声音太大,实际上并不存在......

3 个答案:

答案 0 :(得分:1)

我建议您使用yml文件的其他格式

- id: param1
  key1: value1
  key2: value2

- id: param2
  key1: value1
  key2: value2

- id: param3
  key1: value1
  key2: value2

然后你可以使用{{ site.data.file | map: "id" | join: "," }}

答案 1 :(得分:0)

好吧,我实现了一个小的过滤器来获取哈希键:

https://github.com/dalenys/jekyll-keys-filter

只需编写类似的内容:

{{ hash | keys }} 

答案 2 :(得分:0)

我使用了遍历集合元素的“丑陋解决方案”:

{%  for hash in site.data.file -%}
    {{hash[0]}},
{%- endfor %}

如果要删除结尾的',':

{%  for hash in site.data.file limit: 1 -%}
    {{hash[0]}}
{%- endfor %}
{%- for hash in site.data.file offset: 1 -%}
    ,{{hash[0]}}
{%- endfor %}