Jekyll分页器无法正常工作。

33

我目前正在制作一个基于Jekyll的主页,但我无法让分页工作。

<ul class="posts">
    {% for post in paginator.posts %}
        <li>
            <span class="list_date">{{ post.date | date_to_string }}</span> &raquo; <span class="list_title"> {{ post.title }} </span><br>
            <span class="list_content">{{ post.content | strip_html | truncatewords:35}}</span> 
            <a href="{{ post.url }}">more...</a>
        </li>
    {% endfor %}
</ul>

这是我的Liquid代码,当使用站点而不是分页器时,它完美地工作。 此外,在我的_config.yml文件中,我有以下部分:

paginate: 2
paginator_path: "news/page:num"

由于index.html文件位于news文件夹中

4个回答

68

Jekyll 的分页功能只在 index.html 文件中有效。

如果你的项目文件夹中有其他页面(例如,about.html、poems.html),则它们中的分页功能将无法工作。

要使分页功能在除了 index.html 之外的另一页中工作,请为该页面创建一个新文件夹(例如,poems/),并将原本应为“poems.html”的文件更改为“poems/index.html”。之后,在 _config.yml 中,“paginate_path”应为'paginate_path: "poems/page:num/"'。

我仍在调查此问题。我的网站需要在多个页面上进行分页,但 Jekyll 看起来似乎不支持这一点。


4
我昨天遇到了这个问题。把"blogs.md"替换为"/blogs/index.html"就解决了。谢谢! - David Silva Smith
4
请注意,在页面的正文中不应指定永久链接,如 permalink: /blog/ - Jason Sturges
1
很棒的答案!现在它也在Jekyll官方页面上解释了:https://jekyllrb.com/docs/pagination/ - valvoline

14

我在使用Jekyll的--watch自动重新加载功能时遇到了类似的问题。 我的问题是配置没有自动更新:

Auto regeneration is not working with _config.yml?

手动重启Jekyll之后,_config.yml中关于分页的新配置被加载,paginator开始工作。

另外,您似乎在声明paginator_path,而文档说明应该称为paginate_path


谢谢你的提示,这正是我的问题。 - amypellegrini
谢谢你的提示。--watch也让我困扰了一段时间。 - illbzo1

2

对@wsgeorge的回答,我有一些看法。假设您安装了jekyll-paginate而不是jekyll-paginate-v2

  1. 记得将 index.md 重命名为 index.html

  2. index.html 中添加 paginate: true

    ---
    layout: home
    paginate: true
    ---
    
  3. _config.yaml 中添加以下内容

    paginate: 5
    paginate_path: ./page:num/
    

    注意:./page:num/ 路径中的(period)表示我的 index.html 文件位于根目录(与 Gemfile 相邻的目录)。


2

这个问题已经在jekyll-paginator的第二版中得到解决。现在你可以在任何页面上使用paginator,只需运行:

gem install jekyll-paginate-v2

V2 在 github pages 上无法正常工作。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接