如何使用 Jekyll 的 liquid 模板循环浏览类别然后在该类别中发布帖子?
How to loop through Categories and then Posts within that category using Jekyll's liquid templates?
我有以下布局:
---
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>
有效。例如,它显示 "opinion" 这是类别之一,所以我知道作业有效。 {% for post in site.categories.opinion %}
例如有效。因此,它只是将那个不起作用的变量传递到那里。我该怎么做呢?
我相信您想要的是使用 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}} %}
我应该做 {% for post in site.categories[cat_name] %}
而不是 {% for post in site.categories.cat_name %}
这使它对我有用。
我有以下布局:
---
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>
有效。例如,它显示 "opinion" 这是类别之一,所以我知道作业有效。 {% for post in site.categories.opinion %}
例如有效。因此,它只是将那个不起作用的变量传递到那里。我该怎么做呢?
我相信您想要的是使用 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}} %}
我应该做 {% for post in site.categories[cat_name] %}
而不是 {% for post in site.categories.cat_name %}
这使它对我有用。