Подтвердить что ты не робот

Итерировать через хеши в жидких шаблонах

Я пишу сайт в 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>

Но любые идеи, которые у меня были до сих пор, подвели меня.

4b9b3361

Ответ 1

Когда вы перебираете хэш с помощью переменной с именем 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 %}

Ответ 2

Я бы определил их как это в YAML:

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

И затем итерация:

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

Ответ 3

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

У меня была очень похожая проблема, но у меня было несколько элементов в моей переменной, поэтому я использовал недокументированную переменную item, и она выполнила задание.