Как я могу получить ключ и значение хеша в Jekyll / liquid?

У меня есть страница Jekyll со следующей настройкой:

---
navigation:
 - FOO: foo
 - BAR: bar
 - BAZ: baz
---

<h3>
  <a name="{{ page.navigation[0][1] }}" class="anchor" 
     href="#{{ page.navigation[0][1] }}">
  </a>{{ page.navigation[0][0] }}
</h3>

<p>Lorem ipsum dolor sit amet,.</p>

...

<h3>
  <a name="{{ page.navigation[1][1] }}" class="anchor" 
     href="#{{ page.navigation[1][1] }}">
  </a>{{ page.navigation[1][0] }}
</h3>

<p>Different content ...</p>

...

<h3>
  <a name="{{ page.navigation[2][1] }}" class="anchor" 
     href="#{{ page.navigation[2][1] }}">
  </a>{{ page.navigation[2][0] }}
</h3>

<p>Another different content ...</p>

...

Я пытаюсь использовать key и value каждого элемента навигации в моем вступительном документе со ссылками href в приведенном выше примере.

Я не могу использовать {% for %} итераций, потому что внутри каждого абзаца разное содержание.

Я хочу, чтобы Jekyll выводил следующий код:

<h3>
  <a name="foo" class="anchor" href="#foo">
  </a>FOO
</h3>

<p>Lorem ipsum dolor sit amet,.</p>

...

<h3>
  <a name="bar" class="anchor" href="#bar">
  </a>BAR
</h3>

<p>Different content ...</p>

...

<h3>
  <a name="baz" class="anchor" href="#baz">
  </a>BAZ
</h3>

<p>Another different content</p>

...

Есть идеи, как это сделать?


person Babak K    schedule 03.09.2014    source источник


Ответы (1)


Вы можете деформировать цикл for вокруг каждого элемента в навигации следующим образом:

<h3>
    {% for item in page.navigation[0] %}
     <a name="{{ item[1] }}" class="anchor" 
        href="#{{ item[1] }}">
     </a>{{ item[0] }}
     {% endfor %}
</h3>

<p>Lorem ipsum dolor sit amet,.</p>

<h3>
    {% for item in page.navigation[1] %}
     <a name="{{ item[1] }}" class="anchor" 
        href="#{{ item[1] }}">
     </a>{{ item[0] }}
     {% endfor %}
    </h3>

<p>Different content ...</p>


<h3>
    {% for item in page.navigation[2] %}
     <a name="{{ item[1] }}" class="anchor" 
        href="#{{ item[1] }}">
     </a>{{ item[0] }}
     {% endfor %}
    </h3>

<p>Another different content</p>
person Nils    schedule 14.12.2016