我很难理解如何为博客中使用的每个类别生成归档页面。我希望用户能够单击一个类别,然后进入一个页面,列出所有具有所需类别的文章。
我唯一能想到的方法是在根目录下手动创建一个特定的HTML文件来处理每个类别。但我肯定有更动态的方式?
我的网站托管在Github上-https://github.com/sirbrad/sirbrad.github.com
提前感谢!
Brad
我很难理解如何为博客中使用的每个类别生成归档页面。我希望用户能够单击一个类别,然后进入一个页面,列出所有具有所需类别的文章。
我唯一能想到的方法是在根目录下手动创建一个特定的HTML文件来处理每个类别。但我肯定有更动态的方式?
我的网站托管在Github上-https://github.com/sirbrad/sirbrad.github.com
提前感谢!
Brad
您可以通过使用 site.categories
数据来生成所有可用类别的列表,使用每个类别的第一个元素(数组)以获取类别名称:
{% for cat in site.categories %}
<li>{{ cat[0] }}</li>
{% endfor %}
你可以这样生成给定分类下所有帖子的列表:
{% for post in site.categories.CATEGORY_NAME %}
似乎无法像您希望的那样为每个类别生成单独的HTML页面,但也许一个很好的妥协方案是生成一个包含所有类别列表的单个页面,其中每个类别包含该类别中的所有文章。然后,您可以使用一些简单的JavaScript来隐藏每个类别中的文章,直到选择类别名称,从而提供几乎与每个类别的单独存档页面相同的用户体验。
Create a single page which contains all categories, alphabetically sorted
Indeed create a separate HTML file for each category manually, but put as much as possible into a layout file, so creating a new category page isn't much work:
/_layouts/tagpage.html
:---
layout: default
---
<h1>{{ page.tag }}</h1>
<ul>
{% for post in site.tags[page.tag] %}
<li>
{{ post.date | date: "%B %d, %Y" }}: <a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
With this layout file, you need only two lines of YAML front-matter to add a new tag page:
(in this case for the jekyll tag)
/tags/jekyll/index.html
:---
layout: tagpage
tag: jekyll
---
So the actual effort to create a new tag page is minimal - the only thing is that you need to remember to do it when you're using a new tag for the first time.
对于 Github Pages,您可以使用以下方法创建存档页面:
{% for pt in site.categories %}[{{pt[0]}}](#cat-{{pt[0]}}), {% endfor %}
{% for cat in site.categories %}
{% assign nt = cat[0] %}
#### {{ nt }} {#cat-{{nt}}}
<ul>
{% for post in site.posts %}
{% for pt in post.categories %}
{% if nt == pt %}
<li>
{{post.published}} <a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endif %}
{% endfor %}
{% endfor %}
</ul>
{% endfor %}
site.categories.CATEGORY_NAME
?换句话说,如何使用第一个循环中的cat[0]
替换CATEGORY_NAME
? - Peter Ajtaicapture
也不行。幸运的是,cat[1]
是对cat[0]
中所有帖子的变量引用...所以这样可以工作。 - Peter Ajtai