如何创建每个类别的链接

Jin*_*ing 4 jekyll

我正在尝试创建一个显示所有类别的导航栏,然后通过单击每个类别,它然后链接到该类别中的所有帖子.

我尝试下面,它显示所有类别,但不显示链接.

{% for category in site.categories %}
   <div class= "categories-title"><a name="{{ category | first }}">{{ category | first   }}</a></div>   
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我也尝试了如下jekyll-category-archive-plugin,但它给出了Error:Unknown标签'category'.

{% for category in site categories %}
  {% category link category %}This is a link to {{category}} {% endcategorylink %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一些提示如何做到这一点?

非常感谢.景

Chr*_*cht 5

还有另一个适用于GitHub页面的解决方案:
一个单独的页面,包含所有类别的所有帖子.

我在这里回答了一个类似的问题,在那里我展示了如何做到这一点:
在jekyll博客中支持标签的简单方法

在我的回答中,我使用标签而不是类别,但据我所知,两者的工作方式完全相同.
(所以你可以拿我的代码和替换site.tagssite.categories)

为每个标记生成的HTML将如下所示:

  <h3 id="jekyll">jekyll</h3>
  <ul>
    <li>
      <a href="/blah/">Newest Jekyll post</a>
    </li>
    <li>
      <a href="/foo/">Older Jekyll post</a>
    </li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

这是显示每个类别的所有帖子的页面.
现在到导航栏中的类别列表.

再次,看看上面的HTML:
感谢id="jekyll"部分,您可以使用链接/tags/#jekyll加载/tags/页面并直接跳转到Jekyll标记.

在我的网站上,我正在使用这个链接到/tags/页面的地方.

要在导航栏中创建这些链接,您只需要从问题中获取第一个示例代码并进行更改:

<a name="{{ category | first }}">
Run Code Online (Sandbox Code Playgroud)

......对此:

<a href="/tags/#{{ category | first }}">
Run Code Online (Sandbox Code Playgroud)

(我只是假设你的类别页面/tags/也在URL下面,就像在我的例子中一样)

所以完整的代码看起来像这样:

{% for category in site.categories %}
    <div class="categories-title"><a href="/tags/#{{ category | first }}">{{ category | first }}</a></div>   
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

对于每个类别,生成的HTML将具有如下链接:

<div class="categories-title"><a href="/tags/#jekyll">jekyll</a></div> 
Run Code Online (Sandbox Code Playgroud)

编辑:

你在评论中写道:

我看到你在一个页面上都有帖子的所有标签.我创建了一个类别页面,我想将此页面用作模板.单击导航栏中的每个类别时,我希望它链接到自己的页面.

与此同时,我写了一篇关于在没有插件的情况下构建单独的类别页面的博客文章:
每个标签/类别与Jekyll分开的页面(没有插件)


Phl*_*low 1

默认情况下, Jekyll不会像类别页面一样自动呈现存档页面。您必须自己创建类别页面或使用Jekyll\xc2\xab 的 \xc2\xbbCategory 存档插件等插件。但我想如果你将 GitHub Pages 与 Jekyll 一起使用,这将行不通。

\n