有没有办法通过两个字段对Jekyll中的列表进行排序?

won*_*der 7 sorting liquid jekyll

有没有办法用Jekyll/Liquid按两个字段对列表进行排序?例如,先按年份排序,然后按标题排序.我试过了:

{% assign list = site.data.papers.papers | sort: 'year' | sort: 'title' %}
Run Code Online (Sandbox Code Playgroud)

但这使它只根据最后一个字段排序,在这种情况下是标题.对此进行了一些讨论,但它似乎已被冻结而未被合并:https://github.com/jekyll/jekyll/issues/1802

谢谢!

Dav*_*uel 7

group_by 救援:

{% assign years = site.data.papers.papers | group_by: "year" %}
{% assign yearsSorted = years | sort: "name" %}
<ul>
{% for y in yearsSorted %}
  <li>{{ y.name }}
    <ul>
      {% assign yearTitlesSorted = y.items | sort: "title" %}
      {% for t in yearTitlesSorted %}
      <li>{{ t.title }}</li>
      {% endfor %}
    </ul>
  </li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)