2014-09-21 48 views
1

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

我在下面试过,它显示所有的类别,但不作为一个链接。

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

我也试过哲基尔化类别归档插件如下,但它给错误:未知标签“类别”。

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

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

非常感谢。 Jing

回答

1

Jekyll 默认情况下不自动呈现归档页面类似页面。您必须自己创建类别页面或使用像»Category archive plugin for Jekyll«这样的插件。但是,如果你在Jekyll中使用GitHub Pages,我想这是行不通的。

4

还有另一种解决方案可以在GitHub上工作页面:
单个页面包含所有类别的所有帖子。

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

在我的答案,我使用的标签,而不是类,但据我所知,无论是工作完全一样办法。
(所以你可以把我的代码和site.categories更换site.tags

每个标签生成的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/页面,直接跳转到哲基尔标签。

在我的网站上,我正在使用这个连接到/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> 

编辑:

您在评论中写道:

I see that you have all tags with posts on one page. I have created a categories page and I would like to use this page as a template. While clicking each category in the navigation bar, I would like it to link to its own page.

在此期间,我写了关于建立独立的类别页面无需插件博客文章:
Separate pages per tag/category with Jekyll (without plugins)

+0

您好,Christian,非常感谢您的帮助。我看到你有一个页面上的帖子的所有标签。我创建了一个分类页面,我想将此页面用作模板。在点击导航栏中的每个类别时,我希望链接到它自己的页面。我会尝试修改你的代码,并希望它有效。再次感谢:) – Jing 2014-10-06 21:05:59

+0

例如,您可以使用插件来生成多个分类页面([this one](https://github.com/recurser/jekyll-plugins/blob/master/generate_categories.rb)),但这在GitHub页面上不起作用。如果因为任何原因你不能使用插件,你还有两个选择:a)我上面的解决方案*或* b)手工创建所有的分类页面作为单独的页面 – 2014-10-06 22:11:19

+0

嗨,克里斯蒂安,我使用了你提到的插件,它工作。非常感谢。现在我得到一些并发症。我想建立一个多语言网站(en和cn)。我将帖子转移到单独的文件夹中,例如CN/_posts和EN/_posts。然后它搞砸了。现在我正在尝试使用jekyll-multi-languages插件,希望它可以工作。如果您有关于此的更多提示,请告诉我。 – Jing 2014-10-23 15:28:42

相关问题