如何在 Jekyll 中按 post.title 的字母顺序对 site.posts 进行排序

Eli*_*bel 4 jekyll

我有一些.md帖子,例如:

  • 2016-10-01-first_post.md(标题:第一)
  • 2016-10-03-some_post.md(标题:一些)
  • 2016-10-04-another_post.md(标题:另一个)
  • 2016-10-07-my_post.md(标题:我的)
  • 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>
Run Code Online (Sandbox Code Playgroud)

然后我得到了一个按文件名排序的帖子列表:

• FIRST
• SOME
• ANOTHER
• MY
• JUST
Run Code Online (Sandbox Code Playgroud)

我想site.posts按字母顺序对帖子进行排序post.title,但我不知道如何:

• ANOTHER
• FIRST
• JUST
• MY
• SOME
Run Code Online (Sandbox Code Playgroud)

所以我正在寻找一些帮助,谢谢

Dav*_*uel 5

您可以像这样使用排序过滤器:{% assign sortedPosts = site.posts | sort: 'title' %}然后循环sortedPosts使用:

{% for post in sortedPosts %}
  <a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

请注意,您不能这样做{% for post in sortedPosts | sort: 'title' %}。您必须分配然后循环。