2014-09-21 71 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

相關問題