【问题标题】:How to check if category/tag exists in Jekyll?如何检查 Jekyll 中是否存在类别/标签?
【发布时间】:2018-09-09 11:53:40
【问题描述】:

我正在尝试实现如下示例中的帖子标题:

8/18/2018 | Tags: foo, bar

为了做到这一点,我需要确保标签存在,否则| Tags: 部分会在未标记的帖子中浪费空间。

在网上搜索后,我尝试了这个说法:

{% if post.tags != nil %}
    <b>Tags:</b>
    {% for tag in tags %}
        <a href="{{site.baseurl}}/tags/#{{tag|slugize}}">{{ tag }}</a>
    {% endfor %}
{% endif %}

但无论标签是否在前面声明,每条语句总是返回true。

如何隐藏标签?

【问题讨论】:

  • 如果没有标签,那么 的值是多少?鉴于迭代可能成功,我猜是一个空列表,而不是 nil。
  • @jonrsharpe 猜我太绝望了,无法尝试所有可能的值。最初,我尝试了 {% if post.tags %},然后 {% post.tags = "" %} 我仔细检查了所有内容,但没有运气。所以我最终尝试了 nil。

标签: if-statement jekyll liquid


【解决方案1】:

{% if post.tags != nil %} 始终是 true,因为 post.tagsArray

如果此数组为空,{{ post.tags | inspect }} 将输出[]

要测试此数组是否包含某些内容,您可以使用:

post.tags != empty

这段代码可以解决问题:

{% for post in site.posts %}
{% if post.tags != empty %}
  <b>Tags:</b>
  {% for tag in post.tags %}
      <a href="{{site.baseurl}}/tags/#{{tag|slugify}}">{{ tag }}</a>
  {% endfor %}
{% endif %}
{% endfor %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多