如何在Jekyll中按照post.title字母顺序排序site.posts

5

我有一些 .md 文章,如下:

  • 2016-10-01-first_post.md(标题:FIRST)
  • 2016-10-03-some_post.md(标题:SOME)
  • 2016-10-04-another_post.md(标题:ANOTHER)
  • 2016-10-07-my_post.md(标题:MY)
  • 2016-10-08-just_a_post.md(标题:JUST)

我创建了一个 .html 文件:

---
layout: default
title: Archives
---
<ul>
{% for post in site.posts %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>

然后我得到了一个按文件名排序的帖子列表:
• FIRST
• SOME
• ANOTHER
• MY
• JUST

我想按照文章标题 post.title 的字母顺序来对 site.posts 中的文章进行排序,但我不知道如何做到:
• ANOTHER
• FIRST
• JUST
• MY
• SOME

我在寻求帮助,谢谢。

2个回答

7
你可以像这样使用排序过滤器:{% assign sortedPosts = site.posts | sort: 'title' %},然后循环遍历sortedPosts
{% for post in sortedPosts %}
  <a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}

请注意,您无法执行{% for post in sortedPosts | sort: 'title' %}。您必须先进行分配,然后再循环。

1

看起来这个语法可能已经过时了。只有 sort: 'title' 对我有效。 - l0b0
但是5年前... - Mr. Hugo
当然,只是让人们意识到它。 - l0b0

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