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

With jekyll / liquid how to get all keys of a yml hash

我有这个yaml

param1:
  key1: value1
  key2: value2

param2:
  key1: value1
  key2: value2

param3:
  key1: value1
  key2: value2

如何用液体获得所有钥匙?

预期的结果是

param1,param2,param3

有什么想法吗?

我建议您使用其他格式的 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: "," }}

好的,我实现了一个小过滤器来获取散列键:

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

只需要这样写:

{{ hash | keys }} 

我使用了你的 "ugly solution" 循环遍历集合元素:

{%  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 %}