html - 让 Jekyll 类别计数并链接到与其相关的帖子列表

标签 html jekyll blogs categories

我正在从事 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/

相关文章:

text - 如何在 Jekyll 中获取帖子摘录?

javascript - 如何将输入框的内容转移到段落元素,如博客

javascript - 如何暂停 CSS 过渡?

javascript - Angular ng-disable 未按预期工作

html - div定位在另一个div下

html - 如何从一个域重定向到另一个保持路径组件?

linux - 对于匿名用户来说,Drupal 菜单项和博客条目消失了

html - CSS - 包含 float 问题 - 为什么?

markdown - 解析 Markdown 时保留 HTML 实体

jekyll - 如何删除 Jekyll 中的空白?