【问题标题】:Jekyll plugin to handle categories doesn't work on GitHub用于处理类别的 Jekyll 插件在 GitHub 上不起作用
【发布时间】:2023-03-09 13:45:01
【问题描述】:

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

【问题讨论】:

    标签: jekyll jekyll-extensions


    【解决方案1】:

    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】:

      另一种可能的解决方案:
      如果您不想在本地生成站点并将创建的 HTML 文件推送到 GitHub(就像 David Jacquel 在他的回答中建议的那样),您可以创建包含所有类别的单个页面强>。

      查看这个答案:
      An easy way to support tags in a jekyll blog
      (注意:我在那里使用标签而不是类别,但据我所知,两者在 Jekyll 中的工作方式完全相同。所以你可以拿我的代码,用site.categories替换site.tags

      我承认,每个类别一个页面看起来更好,但我的解决方案的优势在于它可以在 Github 页面上运行(因为它只是 vanilla Liquid,没有插件)。


      编辑:

      同时,我写了一篇博文,如何使用插件在不使用的情况下为每个类别制作单独的页面:
      Separate pages per tag/category with Jekyll (without plugins)

      【讨论】:

      • 我一直在寻找不用插件来处理帖子类别的方法,它可以工作。我将它用于侧边栏上的 topic navigation 。感谢分享代码
      【解决方案3】:

      Github pages only support a small number of Jekyll plugins.

      如果您想使用您的插件,您必须在本地生成您的站点并将其推送到 github 页面上。如果您这样做,请在您的存储库的根目录中添加一个.nojekyll 文件,以告诉 github 不处理您的文件。

      【讨论】:

        猜你喜欢
        • 2013-12-20
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 2019-06-24
        • 2017-10-16
        相关资源
        最近更新 更多