首页 > 解决方案 > 用于在 Liquid 或 Jekyll 中排序数组的自定义比较器

问题描述

我正在尝试在 Jekyll 中建立一个博客。我的一些(不是全部)帖子updated_on的前面有变量,我用它来存储YYYY-MM-DD HH:MM:SS +0530上次更新的日期()。

我希望在我的索引页面上以降序显示帖子(post.updated_on如果可用),否则使用post.date. 为了清楚起见,这是我希望排序比较器工作的伪代码

comp(post a, post b){
    if(a.updated_on) t1 = a.updated_on
    else t1 = a.date

    if(b.updated_on) t2 = b.updated_on
    else t1 = b.date

    return t1>t2
}

如何在 Liquid/Jekyll 中实现这种排序?

我认为的一个后备方法是添加updated_on每个帖子,即使它自发布日期以来从未更新过。然后我可以做类似的事情

{% assign sorted_posts = paginator.posts | sort: 'updated_on' | reverse %}
{% for post in sorted_posts %}
  ... some code here ...
{% endfor %}

但我不想这样做,因为我将不得不手动添加updated_on到每个不存在的帖子中。

标签: jekyllgithub-pagesliquidjekyll-paginator

解决方案


推荐阅读