计算Jekyll中的收集标签

计算Jekyll中的收集标签,jekyll,liquid,Jekyll,Liquid,我试图在Jekyll中计算并列出名为\u note的集合中的标记。我想,我已经非常接近解决这个问题了,但是我在实际计算标签时有点犯了错误(列出唯一的标签很好),我可以用第二双眼睛看看液体标记,看看我遗漏了什么 \u注意YAML标题中的标记组织为: tags:[tag1、tag2、tag3、tag4] 迄今为止: <!-- Create empty arrays --> {% assign tags = '' | split: ',' %} {% assign unique_tags

我试图在Jekyll中计算并列出名为
\u note
的集合中的标记。我想,我已经非常接近解决这个问题了,但是我在实际计算标签时有点犯了错误(列出唯一的标签很好),我可以用第二双眼睛看看液体标记,看看我遗漏了什么

\u注意
YAML标题中的标记组织为:

tags:[tag1、tag2、tag3、tag4]

迄今为止:

<!-- Create empty arrays -->
{% assign tags = '' | split: ',' %}
{% assign unique_tags = '' | split: ',' %}
{% assign counter = 0 %}

<!-- Map and flatten -->
{% assign note_tags =  site.note | map: 'tags' | join: ','  | split: ',' %}

<!-- Push to tags -->
{% for tag in note_tags '%}
  {% assign tags = tags | push: tag %}
{% endfor %}

<!-- Uniq -->
{% assign tags = tags | sort %}
{% for tag in tags %}
  <!-- If not equal to previous then it must be unique -->
  {% unless tag == previous %}    
    <!-- Push to unique_tags and count -->
    {% assign unique_tags = unique_tags | push: tag %}
    {% assign counter = counter | plus: 1 %}
  {% endunless %}
  {% assign previous = tag %}
{% endfor %}

{% for tag in unique_tags %}
  {{ tag }} ({{ counter }}
{% endfor %}

{%assign tags=''| split:','%}
{%assign unique_标记=''|拆分:','%}
{%assign counter=0%}
{%assign note_tags=site.note|map:'tags'| join:','| split:','%}
{注释中标记的百分比\标记“%”
{%assign tags=tags | push:tag%}
{%endfor%}
{%assign tags=tags | sort%}
{标记%中的标记的%s}
{%除非标记==previous%}
{%assign unique_tags=unique_tags | push:tag%}
{%分配计数器=计数器|加:1%}
{%end除非%}
{%assign previous=tag%}
{%endfor%}
{唯一_标记%中的标记的百分比}
{{tag}}({{counter}}
{%endfor%}
在液体中使用
size
方法似乎无法返回正确的值。

新答案 旧答案(我是否在问题中遗漏了什么:是!) 救命啊

{% assign uniq_tags = site.note
                      | map: 'tags'
                      | join: ","
                      | split: ","
                      | uniq %}

<p>{{ uniq_tags | array_to_sentence_string }}</p>
{%assign uniq_tags=site.note
|地图:“标签”
|加入:“,”
|拆分:“,”
|uniq%}
{{uniq_标记|数组_到_句子_字符串}


我在GitHub托管页面上使用Jekyll,您可以使用
group_by
来实现这一点:

{% assign alldocs = site.COLLECTIONNAME | <additional filtering and sorting> %} 
{% assign grouptag =  alldocs | map: 'tags' | join: ','  | split: ','  | group_by: tag %}
{%- for tag in grouptag -%}
    <h1>{{- tag.name -}} - {{tag.size}}</h1>
    {%- for document in alldocs -%}
        {% if document.tags contains tag.name %}
             <p>{{- document.title -}}
         {% endif %}
    {%- endfor -%}
{%- endfor -%}

{%assign alldocs=site.COLLECTIONNAME |

谢谢你的注释。是否有办法扩展此功能,以便我可以计算每个唯一标记的出现次数?例如,我可以显示标记和标记出现的次数?很抱歉,我错过了你的问题。我编辑了我的答案。太棒了!非常感谢。回答得很好。是的单线。
{% assign alldocs = site.COLLECTIONNAME | <additional filtering and sorting> %} 
{% assign grouptag =  alldocs | map: 'tags' | join: ','  | split: ','  | group_by: tag %}
{%- for tag in grouptag -%}
    <h1>{{- tag.name -}} - {{tag.size}}</h1>
    {%- for document in alldocs -%}
        {% if document.tags contains tag.name %}
             <p>{{- document.title -}}
         {% endif %}
    {%- endfor -%}
{%- endfor -%}