Jekyll 不区分大小写的排序

Mat*_*ith 3 tags case-insensitive liquid jekyll

我正在尝试在 Jekyll 中创建一个标签列表。一些标签是“可访问性”、“CSS”和“JavaScript”。所以我创建列表的 Jekyll 代码如下所示:

<ul>
  {% for item in (0..site.tags.size) %}{% unless forloop.last %}
    {% capture this_word %}{{ tag_words[item] }}{% endcapture %}
    <li>
      <a href="#{{ this_word | cgi_escape }}" class="tag">{{ this_word }}
        <span>({{ site.tags[this_word].size }})</span>
      </a>
    </li>
  {% endunless %}{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

但是,列表的呈现不是按字母顺序排列的。首先区分大小写,首字母大写;所以我上面的示例标签按以下顺序呈现:

  • CSS
  • JavaScript
  • 可达性

有没有办法使排序列表不区分大小写?

Dav*_*uel 6

sort_natural液体中有一个过滤器,但它不适用于site.tags.

诀窍是生成一个包含所有标签名称的数组

{% comment %} Creates an empty array {% endcomment %}
{% assign tags = "" | split:"" %}

{% comment %}Creates an array of tags names{% endcomment %}
{% for t in site.tags %}
  {% assign tags = tags | push: t[0] %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

自然排序(不区分大小写)

{% assign sorted_tags = tags | sort_natural %}
Run Code Online (Sandbox Code Playgroud)

基于这种排序,打印标签计数

<ul>
{% for t in sorted_tags %}
  <li>{{ t }} : {{ site.tags[t].size }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)