【问题标题】:With jekyll / liquid how to get all keys of a yml hash使用 jekyll / Liquid 如何获取 yml 哈希的所有密钥
【发布时间】:2016-12-19 04:02:32
【问题描述】:

我有这个 yaml

param1:
  key1: value1
  key2: value2

param2:
  key1: value1
  key2: value2

param3:
  key1: value1
  key2: value2

我怎样才能用液体得到所有的钥匙?

预期的结果是

param1,param2,param3

有什么想法吗?

  • 非常丑陋的解决方案:集合上的 {% for %} 并连接键...
  • 可接受的替代解决方案:创建一个液体过滤器“键”...听起来太大以至于它实际上并不存在...

【问题讨论】:

    标签: collections yaml jekyll liquid


    【解决方案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: "," }}

    【讨论】:

    • 这解决了我的问题,但你也改变了最初的问题^^
    【解决方案2】:

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

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

    只需要写这样的东西:

    {{ hash | keys }} 
    

    【讨论】:

    • 回购不存在。建议更新答案或将其删除。
    • 复制品可能移动了GitHub
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多