如何创建每个类别的链接

时间:2014-09-21 11:21:13

标签: jekyll

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

我在下面尝试过,它会显示所有类别,但不会显示为链接。

{% for category in site.categories %}
   <div class= "categories-title"><a name="{{ category | first }}">{{ category | first   }}</a></div>   
{% endfor %}

我也尝试过如下jekyll-category-archive-plugin,但它会显示错误:未知标记&#39;类别&#39;。

{% for category in site categories %}
  {% category link category %}This is a link to {{category}} {% endcategorylink %}
{% endfor %}

任何人都可以给我一些提示如何做到最好吗?

非常感谢。 荆

2 个答案:

答案 0 :(得分:5)

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

我在这里回答了类似的问题,在那里我展示了如何做到这一点:
An easy way to support tags in a jekyll blog

在我的回答中,我使用标签而不是类别,但据我所知,两者的工作方式完全相同。
(因此您只需接受我的代码并将site.tags替换为site.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>

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

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

在我的网站上,我随处可以使用此链接到/tags/页面。

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

<a name="{{ category | first }}">

......对此:

<a href="/tags/#{{ category | first }}">

(我假设你的类别页面也在网址/tags/下面,就像我的例子一样)

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

{% for category in site.categories %}
    <div class="categories-title"><a href="/tags/#{{ category | first }}">{{ category | first }}</a></div>   
{% endfor %}

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

<div class="categories-title"><a href="/tags/#jekyll">jekyll</a></div> 

修改

您在评论中写道:

  

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

与此同时,我写了一篇关于在没有插件的情况下构建单独的类别页面的博客文章:
Separate pages per tag/category with Jekyll (without plugins)

答案 1 :(得分:1)

Jekyll 默认情况下不会自动呈现存档页面,就像类别页面一样。您必须自己创建类别页面或使用»Category archive plugin for Jekyll«之类的插件。但是,如果你在Gekyll上使用GitHub页面,我想这不会起作用。