使用 GH Pages 的默认插件分页?

Paginate with GH Pages's default plugins?

我正在尝试在 GH 页面上填充我的小型博客。我卡在 Jekyll 分页了。

这是我的 _config.yml:

theme: jekyll-theme-cayman

title: iBug @ GitHub
url: https://ibug.github.io/
tagline: The small personal site for iBug
description: The small personal site for iBug
author: iBug
show_downloads: false

plugins:
  - jekyll-paginate
  - jekyll-redirect-from
  - jekyll-mentions
  - jekyll-seo-tag

paginate: 5
paginate_path: "/blog/page:num/"

这里是唯一 post 的内容:

---
layout: blog
permalink: /p/1
---

# Test Post

Nothing here

我想要 /blog 上的分页索引页和 /blog/page# 上的后续页面(其中 # 是一个数字)。我复制了一个示例 index.html 并将其放在我的仓库中的 /blog/index.html

但是当我导航到 https://ibug.github.io/blog 时,它显示如下:

{% if paginator.total_pages > 1 %} {% if paginator.previous_page %} « Prev {% else %} « Prev {% endif %} {% for page in (1..paginator.total_pages) %} {% if page == paginator.page %} {{ page }} {% elsif page == 1 %} {{ page }} {% else %} {{ page }} {% endif %} {% endfor %} {% if paginator.next_page %} Next » {% else %} Next » {% endif %} {% endif %}

阅读 GH 文档,我了解到 jekyll-paginate 是一个默认插件,无法禁用,所以它不应该这样工作。

我在 /_posts/2018-03-01-first-post.md 也有一个虚拟 post,它正确地显示在 https://ibug.github.io/2018/03/01/first-post

我不想安装 Ruby 开发环境和其他东西。我只想使用 GH Pages 的内置功能。

我可以在 /blog/blog/pageN 获取索引吗?

查看您的源代码,这可能是您博客子目录中的 index.html 文件的问题。

您需要在您希望 Jekyll 处理的任何文件中包含前言,即使它不包含 key/value 数据。如果没有这个,Jekyll 会假定它是一个静态资产,并且会在构建时将其直接复制到您的 _site 目录中。

将此添加到 index.html 文件的顶部应该可以解决问题:

---
---
content here

您还需要确保在该页面上确实显示了 post,而不仅仅是分页导航。所以一定要在上面加上这样的东西:

{% for post in paginator.posts %}
  <h1><a href="{{ post.url }}">{{ post.title }}</a></h1>
  <p class="author">
    <span class="date">{{ post.date }}</span>
  </p>
  <div class="content">
    {{ post.content }}
  </div>
{% endfor %}

作为旁注,您可能想在 _config.yml 中查看 setting defaults 以获得 post permalinks。它比在每个 post.

上定义 link 要干净得多