Итерировать через хеши в жидких шаблонах
Я пишу сайт в 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>
Но любые идеи, которые у меня были до сих пор, подвели меня.
Ответы
Ответ 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
, и она выполнила задание.