使用 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 要干净得多
我正在尝试在 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.