有没有办法使用 Jekyll/Liquid 按两个字段对列表进行排序?例如,先按年份排序,然后按标题排序。我尝试过:
{% assign list = site.data.papers.papers | sort: 'year' | sort: 'title' %}
但这使得它仅根据最后一个字段(在本例中为标题)进行排序。对此有一些讨论,但似乎已被卡住而未合并:https://github.com/jekyll/jekyll/issues/1802
谢谢!
最佳答案
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>
关于sorting - 有没有办法按两个字段对 Jekyll 中的列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651759/