使用 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
有什么想法吗?
- 非常丑陋的解决方案:{% for %} 在集合上并连接键...
- 可接受的替代解决方案:创建一个液体过滤器"keys" ...听起来太大,实际上并不存在...
我建议您使用其他格式的 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 %}
我有这个yaml
param1:
key1: value1
key2: value2
param2:
key1: value1
key2: value2
param3:
key1: value1
key2: value2
如何用液体获得所有钥匙?
预期的结果是
param1,param2,param3
有什么想法吗?
- 非常丑陋的解决方案:{% for %} 在集合上并连接键...
- 可接受的替代解决方案:创建一个液体过滤器"keys" ...听起来太大,实际上并不存在...
我建议您使用其他格式的 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 %}