Jekyll:我们不能在帖子中循环(并显示列表)吗?

时间:2018-02-03 15:11:52

标签: html ruby loops jekyll liquid

我想在类别页面中显示帖子列表:此循环有效。 但是我也希望在每个帖子上显示这个列表:它是相同的循环,但它不起作用。

有我的Jekyll循环:

{% for post in site.categories.[include.nomrecueil] reversed %}
  <li>{{ post.title }</li>
{% endfor %}

短版

我的循环不取决于所使用的布局。 我有以下结构:

categoryA
    | index.md
    | categoryB
        | index.md
        | _posts
            | article.md

我有两个包含相同循环的布局。 categoryB/index.md中的我的循环正在运行,但article.md中的循环不起作用。知道为什么吗?我们不能在帖子中循环(并显示列表)吗?

详细

您可能需要更多信息,因此如果需要,您可以查看the repo。循环位于line 35 of the include nav-poemes.html,包含在两个布局中:a)recueil.html和b)poem.html。循环在调用index.md布局的recueil.html中正确输出,但不在调用article.md布局的poem.html中输出。

我检查了循环中的include参数nomrecueil是否通过了两个布局。没有帖子在第二个布局中使用相同的循环获取... 我是以错误的方式使用杰基尔还是错误?

1 个答案:

答案 0 :(得分:1)

我不知道为什么......但这有效(必须与'contains'语句有关):

{% assing includenomrecueil = include.nomrecueil %}
<ul>
  {% for category in site.categories %}
    {% assign catfirst = category | first %}
    {% if includenomrecueil contains catfirst %}
      {% for posts in category %}
        {% for p in posts reversed %}
          <li>...</li>
        {% endfor %}
      {% endfor %}
    {% endif %}
  {% endfor %}
</ul>

在您的代码中,变量通过。我甚至尝试在变量中添加空格并将其删除(以确保它是一个字符串)。值得注意的是,这有效:

{% for post in site.categories['fleurs-persistantes'] reversed %}
  <li>...</li>
{% endfor %}

即使{{ include.nomrecueil }}输出fleurs-persistantes,但同时这不起作用:

{% for post in site.categories[include.nomrecueil] reversed %}
  <li>...</li>
{% endfor %}

真奇怪!我不明白。