Jekyll添加文章置顶

文章多了之后总会有那么几篇是希望能优先吸引到别人注意的,那么就需要把它放到显眼的位置,例如文章列表顶部。

本博客其实很早就加入文章置顶功能了,也有几篇置顶文章,之前一直没发现问题,直到文章渐渐多了起来才发现之前的置顶代码有个小问题 就是当需要置顶的文章比首页所有正常排序的文章的发布时间都早时 需要置顶的文章就会跑到下一页的顶部去了!!不过也不是什么大问题,修改下代码就好了,本文发布修复后的文章置顶代码!

原版

我们先看下本博客原先使用的文章置顶代码,这版有小问题哦!!可以跳过直接看修改后的版本

{% comment %} 置顶文章列表开始 {% endcomment %}
{% for post in paginator.posts %}
{% if post.top != true %}
{% continue %}
{% endif %}
{% comment %} 文章列表代码开始 {% endcomment %}
<!-- 在这里写文章列表代码 -->
{% comment %} 文章列表代码结束 {% endcomment %}
{% endfor %}
{% comment %} 置顶文章列表结束 {% endcomment %}


{% comment %} 普通文章列表开始 {% endcomment %}
{% for post in paginator.posts %}
{% if post.top == true %}
{% continue %}
{% endif %}
{% comment %} 文章列表代码开始 {% endcomment %}
<!-- 在这里写文章列表代码 -->
{% comment %} 文章列表代码结束 {% endcomment %}
{% endfor %}
{% comment %} 普通文章列表结束 {% endcomment %}

修改后

{% comment %} 置顶文章列表开始 {% endcomment %}
{% for post in site.posts %}
{% if post.top %}
{% if paginator.page == 1 %}
{% comment %} 文章列表代码开始 {% endcomment %}
<!-- 在这里写文章列表代码 -->
{% comment %} 文章列表代码结束 {% endcomment %}
{% endif %}
{% endif %}
{% endfor %}
{% comment %} 置顶文章列表结束 {% endcomment %}


{% comment %} 普通文章列表开始 {% endcomment %}
{% for post in paginator.posts %}
{% if post.top %}
{% else %}
{% comment %} 文章列表代码开始 {% endcomment %}
<!-- 在这里写文章列表代码 -->
{% comment %} 文章列表代码结束 {% endcomment %}
{% endif %}
{% endfor %}
{% comment %} 普通文章列表结束 {% endcomment %}

实现置顶

在文章参数里面添加top: true属性会让该文章置顶显示。以本文为例:

---
layout: post
title:  "Jekyll添加文章置顶"
date:   2019-11-26
categories: Jekyll
tags: Jekyll Liquid
author: Sleepyhead

top: true
---