Liquidを使用するJekyllのサイトを書いています。
次のようにしたいページの前付けがあります。
---
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>
しかし、私がこれまで持ってきたアイデアはどれも失敗しました。
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 %}
私はそれらをYAMLでこのように定義します:
links:
demo: http://www.github.com/copperegg/mongo-scaling-demo
そして繰り返します:
{% for link in page.links %}
<a href="{{ link[1] }}">{{ link[0] }}</a>
{% endfor %}
{% for link in page.links %}
{% for item in link %}
<a href="{{ item[0] }}">{{ link[1] }}</a>
{% endfor %}
{% endfor %}
非常によく似た問題がありましたが、変数に複数の項目があるため、文書化されていないitem
変数を使用すると、問題が解決しました。