Jekyll分页:偏移所有页面,而不仅仅是第一页



我在使用Jekyll(使用Liquid模板语言(、插件jekyll-paginate-v2offset时遇到了一个问题。

问题:我的博客上有一个特色部分,总是显示最新的帖子。其他帖子出现在下面,每页10个,使用分页。

我试着简单地用{% for post in paginator.posts offset:1 %}展示它们,但这在两个方面有缺陷:

  • 它每页只显示9个帖子,而不是10个
  • 它抵消了每页上的第一个帖子,所以第一个、第十个、第二十个等帖子都被隐藏了,这不是我想要的

我试图实现的目标:一个循环,它总是忽略索引0处的帖子,并像往常一样显示其他所有内容。

我只是用错了offset,还是这是jekyll-paginate-v2中的一个错误?

现在我已经通过以下操作"修复"了它,但这并不理想,因为第一页只显示了9个帖子:

<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>

我向jekyll-paginate-v2开发人员提出了这个问题,现在已经解决了:https://github.com/sverrirs/jekyll-paginate-v2/issues/100

作为一个快速修复程序,您应该能够手动在最新的帖子中添加一个front-matter属性:

---
layout: page
pagination: 
enabled: false
---

否则,您必须排除paginator-v2插件并编写自己的分页逻辑,或者在_plugins目录中扩展插件,以便发送到paginate插件的posts数据已经排除了第一个(实际上是最后一个,因为之后将进行反向排序(post。

我已经破解了一个有缺陷的解决方案,我正在使用它,直到出现更好的解决方案。我现在就分享到这里:

<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>

它的主要问题是第二页再次显示了第一页上的最后一篇文章。然而,对我来说,这总比第一页只显示9个帖子要好。任何更好的解决方案都将不胜感激!

相关内容

  • 没有找到相关文章

最新更新