迭代Jekyll Frontmatter中的一系列项目

时间:2017-06-12 15:25:20

标签: jekyll

我的前提:

menu_links:
- donate: "/donate"
- shop: "/shop"

我的循环:

{% for menu_link in page.menu_links %}
  <div><a class="menu-item" href="{{ menu_link[1] }}">{{ menu_link[0] }}</a></div>
{% endfor %}

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

定义它的方式解析为:[{"donate"=>"/donate"}, {"shop"=>"/shop"}]

所以你可以通过以下方式访问它们:

{{page.menu_links[0]['donate']}}
{{page.menu_links[1]['shop']}}

更好的是:

menu_links:
 donate: "/donate"
 shop: "/shop"

所以你可以直接访问:

{{page.menu_links['donate']}}
{{page.menu_links['shop']}}

然后你的原始代码就可以了。

答案 1 :(得分:1)

解决方案:

{% for menu_link in page.menu_links %}
  {% for item in menu_link %}
    <div><a class="menu-item" href="{{ item[1] }}">{{ item[0] }}</a></div>
  {% endfor %}
{% endfor %}

每个项目需要第二次循环才能获得每个menu_link的键/值对。