我已经使用官方来源(https://github.com/recurser/jekyll-plugins)复制了Jekyll插件以生成类别页面到我的Github存储库中它并不起作用,我继续获得404页面。如果我在Jekyll服务器和_site目录中的本地机器上测试它就可以了。有什么想法吗?
答案 0 :(得分:2)
另一种可能的解决方案:
如果您不想在本地生成您的网站并将创建的HTML文件推送到GitHub (就像David Jacquel在他的回答中提到的那样),您可以创建一个包含所有类别的单个页面强>
看看这个答案:
An easy way to support tags in a jekyll blog
(注意:我在那里使用标签而不是类别,但据我所知,两者在Jekyll中的工作方式完全相同。所以你可以只需要我的代码并用{{site.tags
替换site.categories
1}})
我承认,每个类别的一个页面看起来更好,但我的解决方案的优势在于它适用于Github Pages(因为它只是vanilla Liquid,没有插件)。
修改强>
与此同时,我写了一篇博文,介绍如何使用插件为每个类别制作单独的页面: Separate pages per tag/category with Jekyll (without plugins)
答案 1 :(得分:2)
GitHub Pages不支持大多数插件。他们不希望在幕后发生任何疯狂的事情。
以下是我如何使用Github Pages进行分类。它不是完全自动的,因为它需要为您要设置的每个类别单独的.html文件。但它在Github Pages上没有任何插件或魔法的情况下工作。
在根目录中创建categoryname.html文件。例如,hardware.html
表示硬件类别。在所有网站的帖子上运行for循环并检查post.category
<div class="posts">
{% for post in site.posts %}
{% assign author = site.authors[post.author] %}
{{ author.display_name }}
{% if post.category == 'Hardware' %}
<div class="post">
<h1 class="post-title">
<a href="{{ post.url }}">{{ post.title }}</a>
</h1>
{{ post.content }}
</div>
{% endif %}
{% endfor %}
</div>
在您的帖子中,您可以使用YAML
标题将该类别添加到帖子中。像下面的代码:
---
layout: post
title: How We Built a Hardware Product
author: Author Name
category: Hardware
---
应该这样做。它会创建一个/hardware/
页面,其中包含所有具有“硬件”类别的帖子。确保您对YAML
和类别名称(hardware != Hardware and category != Category
)区分大小写。
答案 2 :(得分:1)
Github pages only support a small number of Jekyll plugins
如果您想使用插件,则必须在本地生成您的网站并将其推送到github页面。如果这样做,请在存储库的根目录中添加.nojekyll
文件,以告知github不处理您的文件。