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
谢谢!
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)