我想显示一个只显示不同类别的菜单。
想象一下,有以下结构:
_folder1
现在,让我只关注三个文件。
对于_folder1中包含的每个文件,您都有以下YAML MATTER
标题:1文件
类型:y
项目:1
TITLE:2File
类型:y
项目:1
TITLE:3File
类型:y
项目:2
现在,我想显示以下列表:
项目
我不想要双人1。
在杰基尔达到目标的最佳做法是什么?
答案 0 :(得分:1)
这是可能的,但你需要一些非常丑陋的字符串操作黑客来实现它。
据我所知,Liquid自己创建阵列没有正确的方法 因此,以下90%的解决方案包括滥用字符串以创建数组。
<!-- Step 1: create an array with all projects (with duplicates) -->
{% for page in site.pages %}
{% if page.project %}
{% capture tmp %}{{ tmp }}#{{ page.project }}{% endcapture %}
{% endif %}
{% endfor %}
{% assign allprojects = tmp | remove_first: '#' | split: '#' | sort %}
<!-- Step 2: create an array of unique projects (without duplicates) -->
{% for project in allprojects %}
{% unless tmp2 contains project %}
{% capture tmp2 %}{{ tmp2 }}#{{ project | strip }}{% endcapture %}
{% endunless %}
{% endfor %}
{% assign uniqueprojects = tmp2 | remove_first: '#' | split: '#' | sort %}
<!-- Step 3: display unique projects -->
<h1>Projects:</h1>
<ul>
{% for project in uniqueprojects %}
<li>{{project}}</li>
{% endfor %}
</ul>
最后,第3步将生成以下HTML ...完全按照要求生成:
<h1>Projects:</h1>
<ul>
<li>1</li>
<li>2</li>
</ul>