我正在开发一个Jekyll项目。这是一个包含类别的帖子的博客。 我希望在右侧有一个侧边栏,列出与此类别相关的类别和帖子数量,并在点击类别本身时,列出与此类别相关的帖子。
现在,我成功地将类别列表与其计数相关,但不显示帖子。这是代码:
<ul class="tag-box inline">
{% assign tags_list = site.categories %}
{% if tags_list.first[0] == null %}
{% for tag in tags_list %}
<a href="#{{ tag }}">{{ tag | capitalize }} <span>{{ site.tags[tag].size }}</span></a>
{% endfor %}
{% else %}
{% for tag in tags_list %}
<div><a href="#{{ tag[0] }}">{{ tag[0] | capitalize }} <span> ({{ tag[1].size }}) </span></a></div>
{% endfor %}
{% endif %}
{% assign tags_list = nil %}
</ul>
我正在寻找互联网上的一些解决方案,其中一些解释说我应该创建一个文件夹类别,并在此文件夹下尽可能多的文件夹和index.html的类别来显示类别。然而,这是很多重复的内容,我不知道这是否是最好的方法。
感谢您的帮助!
答案 0 :(得分:2)
由于您无法使用插件,因此您必须为每个类别创建一个页面。
为了避免重复内容,您可以借助布局链来进行分解。您的类别页面将使用category_index.html
作为布局,其本身将使用default.html
。
<ul class="tag-box inline">
{% for category in site.categories %}
<div><a href="{{ site.baseurl }}/category/{{ category[0] }}">{{ category[0] | capitalize }} <span> ({{ category[1].size }}) </span></a></div>
{% endfor %}
</ul>
如果您需要category/toto/
等网址,则必须在permalink: pretty
中设置_config.yml
。
---
layout: category_index
category: toto
---
就是这样。
---
layout: default
---
<div class="home">
<h1 class="page-heading">Posts in category : {{ page.category }}</h1>
<ul class="post-list">
{% for p in site.categories[page.category] %}
<li>
<h2><a href="{{ site.baseurl }}{{ p.url }}">{{ p.title }}</a></h2>
</li>
{% endfor %}
</ul>
</div>