如何在Jekyll / liquid中获取哈希的键和值?

时间:2014-09-03 21:49:34

标签: yaml 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链接,使用前面每个导航项的valuehref

我无法使用{% 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>

...

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以在导航中的每个项目周围扭曲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>