首页 > 解决方案 > 如何使用 Github Pages 在 Jekyll 中对类别进行分页?

问题描述

Jekyll 转换 WordPress 博客的新手我正在尝试将分页添加到我的类别布局中。在_layouts目录中,我创建了一个名为category.html的文件。我可以通过以下方式成功呈现特定类别:

类别.html:

---
layout: default
---
{% assign catName = page.title | string %}
{% for post in site.categories[catName] %}
    <p>{{ post.title }}</p>
{% endfor %}

当我在遵循Jekyll 的分页文档后尝试对类别的帖子进行分页时:

{% for foobar in paginator.posts %}
    <p>{{ foobar.title }}</p>
{% endfor %}

代码什么也不渲染。根据我的研究,Github Pages 限制了可以使用的插件,我无法验证是否允许使用jekyll-paginate-v2

我的文件结构:

_config.yml:

plugins:
  - jekyll-feed
  ## - jekyll-paginate-v2
  - jekyll-paginate

exclude:
  - Gemfile
  - Gemfile.lock

collections:
  category:
    output: true

defaults:
    scope:
      path: ""
      type: category
    values:
      layout: "category"

paginate: 1
paginate_path: "/page:num/"

宝石文件:

gem "github-pages", group: :jekyll_plugins

group :jekyll_plugins do
  gem "jekyll-feed", "~> 0.6"
  ## gem "jekyll-paginate-v2", "~> 1.7"
  gem "jekyll-paginate"
end

研究:

对于 Github 页面上的 Jekyll 站点,如何为该类别创建分页以仅呈现该类别的帖子?这相当于 WordPress 的 category.php。

标签: paginationjekyllcategoriesblogsgithub-pages

解决方案


Paginate 仅对所有帖子进行分页,而不是按类别或标签。

Paginate V2 甚至对集合也这样做。但是你不能在 Github 页面上运行这个插件(允许的插件)。

两种解决方案:

  1. 在分支中发布您的代码,在本地生成您的站点(或使用对开源项目免费的Travis 持续集成之类的服务)并在另一个分支中发布(或让您的 CI 发布)您生成的代码。

  2. 使用像Netlify这样的现代托管服务提供商,它允许您使用任何插件。


推荐阅读