在液体模板中迭代哈希值

时间:2011-11-21 03:15:05

标签: liquid jekyll

我正在Jekyll写一个使用Liquid的网站。

对于我希望看起来像这样的页面,我有前面的内容:

---
title: Designing algorithms that scale horizontally
speaker: Luke Ehresman, CopperEgg
category: notes.mongodallas.talks
links:
 - demo: http://www.github.com/copperegg/mongo-scaling-demo
layout: talknotes
---

在Liquid中,YAML的链接部分来自:

[{'demo' => 'http://www.github.com/copperegg/mongo-scaling-demo' }]

我希望能够迭代数组,做这样的事情:

<a href="{{ link.value }}">{{ link.key }}</a>

但到目前为止我所做的任何想法都让我失望。

3 个答案:

答案 0 :(得分:100)

使用名为hash的变量迭代哈希时,hash[0]包含密钥,hash[1]包含每次迭代的值。

{% for link_hash in page.links %}
  {% for link in link_hash %}
    <a href="{{ link[1] }}">{{ link[0] }}</a>
  {% endfor %}
{% endfor %}

答案 1 :(得分:21)

我会在YAML中定义它们:

links:
  demo: http://www.github.com/copperegg/mongo-scaling-demo

然后迭代:

{% for link in page.links %}
  <a href="{{ link[1] }}">{{ link[0] }}</a>
{% endfor %}

答案 2 :(得分:1)

  {% for link in page.links %}
      {% for item in link %}
        <a href="{{ item[0] }}">{{ link[1] }}</a>
      {% endfor %}
    {% endfor %}

我遇到了一个非常类似的问题,但我的变量中有多个项目,所以我使用了未记录的item变量,并完成了这项工作。