计算Jekyll中的收集标签
我试图在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
\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 -%}