我希望在边栏中显示我的收藏帖子中的所有标签,并让每个标签都单击到所有相关帖子。我还想显示使用标签的次数:
标签名(10)
这是我目前拥有的所有标签列表,但是我不知道如何获取标签以点击进入所有相关页面并显示尺寸。
<ul class="">
{% assign tags = site.vacancies | map: 'tags' | join: ',' | split: ',' | uniq %}
{% for tag in tags %}
<li class="text-capitalize">
<a href="{{ tag }}" class="sidebar-tag">{{ tag }}</a>
</li>
{% endfor %}
</ul>
答案 0 :(得分:0)
因此,有一种方法可以通过创建一组标签数组,同时遍历集合中的帖子并使用大量液体来实现这一点,因此我决定采取自己的解决方法。
我有一个我使用的所有标签的主列表,存储在/_data/tagList.yml
中。每个标签都有一个名称和子标签,并且您可以根据需要添加更多字段,例如描述。我遍历tagList
中的数据,并为每个标签有一个指向专用页面的链接,该页面列出了包含该标签的所有帖子。
如果您遵循Jekyll docs并在前面使用了tags
,并且在命名标签方面始终如一,那么您可以使用site.tags[tag.name] | size
过滤器来计算帖子带有该标签。
此解决方法的缺点是:
tagList.yml
// /_data/tagList.yml
- name: Coding
slug: coding
- name: UnpopularOpinion
slug: unpopular-opinion
// /_posts/2019-01-01-example.html
---
tags: [Coding, UnpopularOpinion]
---
// /blog/tags.html
{% for tag in site.data.tagList %}
<div>
<h2><a href="/blog/tags/{{tag.slug}}.html">{{tag.name}}</a></h2>
{% assign postCount = site.tags[tag.name] | size %}
<em>
{% if postCount == 1 %}
{{postCount}} post
{% else %}
{{postCount}} posts
{% endif %}
</em>
</div>
{% endfor %}
// /blog/tags/coding.html
{% assign numPosts = site.tags.Coding | size %}
{% if numPosts == 0 %}
<p>No posts have this tag...yet.</p>
{% endif %}
{% for post in site.tags.Coding %}
...code to display a post...
{% endfor %}
答案 1 :(得分:0)
首先,使用Jekyll Variables提供的// hide the two child <select>
document.querySelectorAll("#w_lmg, #w_marks").forEach(
function(item) {
item.style.display = "none";
}
);
将所有标签检索到列表中
site.tags
其次,获得每个Tag的链接及其相应的帖子数
{% capture site_tags %}{% for tag in site.tags %}{{ tag | first }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign tags_list = site_tags | split:',' | sort_natural %}
第三,显示每个标签的名称及其帖子的名称和日期。
<ul>
{% for item in (0..site.tags.size) %}{% unless forloop.last %}
{% capture this_word %}{{ tags_list[item] | strip_newlines }}{% endcapture %}
<li><a href="#{{ this_word}}" class="tag"><span class="tag-name">{{ this_word }}</span> <span class="count">{{ site.tags[this_word].size }}</span></a></li>
{% endunless %}{% endfor %}
</ul>