我想在jekyll中创建所有标签和相应帖子的列表索引。
我的第一个方法,每个标签的for循环:
<h4>FRUITY</h4>
{% for post in site.tags.fruity %}
<ul class="posts">
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
</ul>
{% endfor %}
<h4>SWEET</h4>
{% for post in site.tags.sweet %}
<ul class="posts">
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
</ul>
{% endfor %}
...
这个工作,但我必须为每个新标签手动创建一个新的for循环。
我的第二种方法,一个循环来自动执行此步骤,所以我不必担心新的或删除的标签:
{% for tag in site.tags %}
<div class="medium-6 large-3 columns list-view-all">
<h4>{{ tag | first | upcase}}</h4>
{% for post in site.posts contains tag %}
<ul class="posts">
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
</ul>
{% endfor %}
</div>
{% endfor %}
第一部分有效,每个标签都成为标题。 在内部for循环包含任何标记的所有帖子都列出。所以每个标签的列表都是相同的。
问题: 如何为每个标签制作一个列表,只有与相应标签对应的帖子?
感谢您的帮助!
答案 0 :(得分:1)
{% for tag in site.tags %}
<div class="medium-6 large-3 columns list-view-all">
{% assign currentTag = tag | first %}
<h4>{{ currentTag | upcase}}</h4>
{% for post in site.posts %}
{% if post.tags contains currentTag %}
<ul class="posts">
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
</ul>
{% endif %}
{% endfor %}
</div>
{% endfor %}