Jekyll 分页:offset 偏移所有页面,而不仅仅是第一个
Jekyll paginate: offset offsetting all pages, not just first
我 运行 在使用 Jekyll(使用 Liquid 模板语言)、插件 jekyll-paginate-v2
和 offset
.
时遇到问题
问题: 我的博客上有一个特色部分,它总是显示最新的 post。其他 post 出现在下方,使用分页每页 10 个。
我试图简单地使用 {% for post in paginator.posts offset:1 %}
来展示它们,但这在两个方面存在缺陷:
- 它每页只显示 9 post 而不是 10
- 它偏移了每页的第一个post,这样第1、10、20等post就被隐藏了,这不是我想要的
我想要实现的目标: 一个始终忽略索引 0 处的 post 并正常显示其他所有内容的循环。
我只是使用了 offset
错误,还是 jekyll-paginate-v2
中的错误?
现在我通过执行以下操作 "fixed" 它,但它并不理想,因为第一页只显示 9 posts:
<div class="articles-showcase row post-list">
{% assign featuredpost = site.posts.first %}
{% for post in paginator.posts %}
{% if post == featuredpost %}
{% continue %}
{% else %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
我已经破解了一个有缺陷的解决方案,我一直在使用它,直到出现更好的解决方案。我暂时在这里分享:
<div class="articles-showcase row post-list">
{% if paginator.page == 1 %}
{% for post in site.posts limit:11 %}
{% if post == featuredpost %}
{% continue %}
{% else %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% if paginator.page > 1 %}
{% for post in paginator.posts %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
它的主要问题是第 2 个分页页面再次显示第 1 页上的最后一篇文章。然而,对我来说,这比在首页只显示 9 个帖子要好。任何更好的解决方案将不胜感激!
作为快速修复,您应该能够手动将前题 属性 添加到最新的 post:
---
layout: page
pagination:
enabled: false
---
否则,您要么必须排除 paginator-v2 插件并编写自己的分页逻辑,要么在您的 _plugins
目录中扩展该插件,以便 posts 数据发送到paginate 插件已经排除了第一个(实际上是最后一个,因为之后会进行反向排序。)post.
我向 jekyll-paginate-v2 开发人员提出了这个问题,现在已经解决了:https://github.com/sverrirs/jekyll-paginate-v2/issues/100
我 运行 在使用 Jekyll(使用 Liquid 模板语言)、插件 jekyll-paginate-v2
和 offset
.
问题: 我的博客上有一个特色部分,它总是显示最新的 post。其他 post 出现在下方,使用分页每页 10 个。
我试图简单地使用 {% for post in paginator.posts offset:1 %}
来展示它们,但这在两个方面存在缺陷:
- 它每页只显示 9 post 而不是 10
- 它偏移了每页的第一个post,这样第1、10、20等post就被隐藏了,这不是我想要的
我想要实现的目标: 一个始终忽略索引 0 处的 post 并正常显示其他所有内容的循环。
我只是使用了 offset
错误,还是 jekyll-paginate-v2
中的错误?
现在我通过执行以下操作 "fixed" 它,但它并不理想,因为第一页只显示 9 posts:
<div class="articles-showcase row post-list">
{% assign featuredpost = site.posts.first %}
{% for post in paginator.posts %}
{% if post == featuredpost %}
{% continue %}
{% else %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
</div>
我已经破解了一个有缺陷的解决方案,我一直在使用它,直到出现更好的解决方案。我暂时在这里分享:
<div class="articles-showcase row post-list">
{% if paginator.page == 1 %}
{% for post in site.posts limit:11 %}
{% if post == featuredpost %}
{% continue %}
{% else %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endif %}
{% endfor %}
{% endif %}
{% if paginator.page > 1 %}
{% for post in paginator.posts %}
<!-- Article Card -->
<div class="article-detail-box col-lg-6 col-md-6 col-sm-12 card-article-div" data-cat="{{post.category | join: ','}}">
<div class="card card-article box-shadow h-100">
<a href="{{ site.baseurl }}{{post.url}}" class="card-article-linker" title="{{post.title}}"></a>
<div class="img-div text-center post-card-header bg-gray">
<img src="{{ site.baseurl }}{{post.image}}" alt="{{post.title}}">
</div>
<div class="card-article-body">
<p class="author-name">{{post.author}} | {{ post.date | date: '%B %d, %Y' }}</p>
<a href="{{site.baseurl}}{{post.url}}">
<h5>{{post.title}}</h5>
</a>
<div class="article-description">{{post.content}}</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}
</div>
它的主要问题是第 2 个分页页面再次显示第 1 页上的最后一篇文章。然而,对我来说,这比在首页只显示 9 个帖子要好。任何更好的解决方案将不胜感激!
作为快速修复,您应该能够手动将前题 属性 添加到最新的 post:
---
layout: page
pagination:
enabled: false
---
否则,您要么必须排除 paginator-v2 插件并编写自己的分页逻辑,要么在您的 _plugins
目录中扩展该插件,以便 posts 数据发送到paginate 插件已经排除了第一个(实际上是最后一个,因为之后会进行反向排序。)post.
我向 jekyll-paginate-v2 开发人员提出了这个问题,现在已经解决了:https://github.com/sverrirs/jekyll-paginate-v2/issues/100