Tags Jekyll不区分大小写排序

Tags Jekyll不区分大小写排序,tags,jekyll,liquid,case-insensitive,Tags,Jekyll,Liquid,Case Insensitive,我正在尝试在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="#{

我正在尝试在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>
    {%(0..site.tags.size)%}{%forloop.last%} {%capture this_word%}{{tag_words[item]}{%endcapture%}
  • {%end除非%}{%endfor%}
但是,列表的格式不是按字母顺序排列的。这是第一个区分大小写,大写字母优先;因此,我上面的示例标记按以下顺序呈现:

  • CSS
  • JavaScript
  • 可达性

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

在液体中有一个
sort\u natural
过滤器,但它不区分大小写

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

{% 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 %}
自然排序(不区分大小写)

基于此排序,打印标记计数

<ul>
{% for t in sorted_tags %}
  <li>{{ t }} : {{ site.tags[t].size }}</li>
{% endfor %}
</ul>
    {t在排序的_标记%中的百分比}
  • {{t}}:{{site.tags[t].size}
  • {%endfor%}

一旦您必须按帖子名称查找帖子,这将变得更加复杂。以下是按字母顺序对归档列表中的帖子进行排序的解决方案:

  {% assign post_names = "" | split:"" %}
  {% for post in tag.last %}
    {% assign post_names = post_names | push: post.title %}
  {% endfor %}

  {% assign sorted_post_names = post_names | sort_natural %}

  {% for post_name in sorted_post_names %}
    {% assign matched_post = site.posts | where:"title",post_name %}
    {% assign post = matched_post[0] %}
    …
  {% endfor %}

诀窍是从整个帖子列表中找到带有
的帖子,其中

上面提到的问题似乎已经解决了。您可以尝试直接使用它:

<ul>
{% for t in site.tags sort_natural %}
  <li>{{ t }} : {{ site.tags[t].size }}</li>
{% endfor %}
</ul>
    {site.tags sort_natural%}
  • {{t}}:{{site.tags[t].size}
  • {%endfor%}

为什么不创建一个更直观的空数组
{%assign tags=“”| split:“%}
<ul>
{% for t in site.tags sort_natural %}
  <li>{{ t }} : {{ site.tags[t].size }}</li>
{% endfor %}
</ul>