如何使用Jekyll的液体模板遍历类别,然后遍历该类别中的帖子?

时间:2018-10-18 22:31:33

标签: jekyll liquid

我的布局如下:

---
layout: default
---
{% include header.html %}
<ul>
        {% for cat in site.categories %}
        <li>
                {% assign cat_name = cat[0] %}
                <div class="Projects">
                        <h1>{{ cat[0] }}</h1>
                        <h2>{{ cat_name }}</h2>
                        <ul>
                                {% for post in site.categories.cat_name %}
                                <li>
                                        <span class="date">{{ post.date | date: '%Y %b %d' }}</span> - <a href="{{ post.url }}">{{ post.title }}</a>
                                </li>
                                {% endfor %}
                        </ul>
                </div>
        </li>
        {% endfor %}
</ul>

这会尝试浏览我网站的类别,然后为每个类别指定类别名称为“ cat_name”,然后为每个类别使用{% for post in site.categories.cat_name %}循环浏览该类别中的帖子。

这不起作用。该行:

<h2>{{ cat_name }}</h2>

起作用。例如,它显示了“意见”这是类别之一,因此我知道该分配有效。例如,{% for post in site.categories.opinion %}是有效的。因此,这仅仅是在该变量中传递无效的内容。我该怎么做呢?

2 个答案:

答案 0 :(得分:2)

我应该做{% for post in site.categories[cat_name] %}而不是{% for post in site.categories.cat_name %}

这使它对我有用。

答案 1 :(得分:1)

我相信您想要使用capture来构建一个使用类别名称的新变量,如此处Liquid文档中所述:https://shopify.github.io/liquid/tags/variable/

{% capture s_c_cat_name%}site.categories.{{cat[0]}}{% endcapture %} ... {% for post in {{s_c_cat_name}} %}