我正在一个jekyll / gh-pages网站上工作 . 我想 Build 一个侧栏,根据CUSTOM标签列出帖子数量 . 所以我可以使用不同的yml元素对帖子进行排序 . 使用标签yml元素和此代码可以正常工作
<h3>Activities By Topic</h3>
{% for tag in site.tags %}
{% assign t = tag | first %}
{% for atag in site.data.tags %}
{% if atag.slug == t %}
<h5><a href="{{ site.baseurl }}/{{ atag.slug }}">{{ atag.name }}
{% endif %}
{% endfor %}
({{ tag | last | size }})
</a></h5>
{% endfor %}
但我想要的是另一个块"Activities by Type"(我们试图以不同的方式对帖子进行排序 . 我设置了一个 topic-tag
yml元素和一个`topic-tag.yml文件'
_data文件夹https://github.com/lwasser/data-lesson-catalog/blob/gh-pages/_data/topic-tags.yml org文件夹:https://github.com/lwasser/data-lesson-catalog/tree/gh-pages/org/topic-tag示例帖子:https://github.com/lwasser/data-lesson-catalog/edit/gh-pages/_posts/lessons/2015-09-10_dc-R.md
来自样本的相关YML
---
layout: post
catalog-entry-type: lesson
title: Data Carpentry R for Ecology
topic-tag: ["Analysis", "Vizualization"]
---
代码无效:
<h3>Data Activities By Topic Tag</h3>
{% for tag in site.topic-tag %}
{% assign t = tag | first %}
{% for atag in site.data.topic-tags %}
{% if atag.slug == t %}
<h5><a href="{{ site.baseurl }}/{{ atag.slug }}">{{ atag.name }}</h5>
{% endif %}
{% endfor %}
({{ tag | last | size }})
{% endfor %}
我可以通过其他标签(不仅仅是标签yml元素)对帖子进行排序吗?
我喜欢的输出是这样的:分析(2)可视化(3)
如果是这样,有关为何上述代码不起作用的任何建议?我在这里发现了另一篇帖子,询问类似的东西,但决议是使用yaml“tags”元素,这对我的用例不起作用 . 非常感谢,莉娅
3 回答
这里的代码用于显示每个类别的帖子数量 . 您可以将site.categories更改为site.tags以按标记显示它们 .
检查行动here .
你可以使用categories . 它们就像标签一样工作,可以是另一种对帖子进行排序的方式 .
嗨,任何正在为同样的事情奋斗的人 . 这就是我所学到的 .
标签和类别内置于jekyll构建中 . 因此,您可以在不向配置文件添加任何内容的情况下调用site.tags或site.categories . 您创建的其他自定义标记如
topic-tags
,jekyl本身并不将其理解为可在站点级别调用的变量 . 我的解决方法 - 使用计数器按自定义变量计算帖子 . 代码看起来像这样这就像一个魅力,虽然它正在查看所有帖子,看它是否包含yaml中的
member
标签 .我希望这可以帮助别人!