sorting - 有没有办法按两个字段对 Jekyll 中的列表进行排序?

标签 sorting jekyll liquid

有没有办法使用 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/

相关文章:

java - java数组的基本for循环操作?

sorting - groovy中的列表排序

ios - 如何对工作日的NSArray进行排序?

javascript - 从 slider 中删除变体的尺寸图片 - Shopify

shopify - 调用 shopify 设置时的液体 if 语句中的变量

ruby - 如何让 Liquid 模板部分(包括)与 Sinatra 一起使用?

algorithm - 再分配算法

jekyll - 将多个布局应用于 jekyll 中的同一个集合项

html - 我如何使用 less/css 只影响没有其他内容的段落中的 imgs?

pagination - 如何使用 Github Pages 在 Jekyll 中对类别进行分页?