我正在从事 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来显示类别。然而,这是很多重复的内容,我不知道这是否是最好的方法。
感谢您的帮助!
最佳答案
由于您无法使用插件,因此您必须为每个类别创建一个页面。
为了避免重复内容,您可以借助布局链进行分解。您的类别页面将使用 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/
这样的网址,您必须在 _config.yml
中设置 permalink: Pretty
。
类别页面:category/toto.html
---
layout: category_index
category: toto
---
仅此而已。
_layouts/category_index.html
---
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>
关于html - 让 Jekyll 类别计数并链接到与其相关的帖子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514852/