处理类别的Jekyll插件在GitHub上不起作用

时间:2014-10-06 14:41:36

标签: jekyll jekyll-extensions

我已经使用官方来源(https://github.com/recurser/jekyll-plugins)复制了Jekyll插件以生成类别页面到我的Github存储库中它并不起作用,我继续获得404页面。如果我在Jekyll服务器和_site目录中的本地机器上测试它就可以了。有什么想法吗?

3 个答案:

答案 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不处理您的文件。