仅在有标签时渲染标签标签

Render tag label only if there are tags

我只想在 post 有实际标签的情况下呈现“标签:”标签。当我写

{{post.tags | size}}

我得到标签的数量。但是,如果我把它放在 {% if %} 条件下:

{% if post.tags | size != '0' %}

它总是产生 true。我用

解决了这个问题
{% capture tagsize %}{{post.tags | size}}{% endcapture %}
{% if tagsize != '0' %}

但是看起来很丑。有更好的方法吗?

注意:我使用 GitHub 页面,所以使用插件——除了矫枉过正——不是一种选择。我的 Jekyll 版本是2.0.4,截至日期here

默认 {{ post.tags }} == empty array

由于我们不能做到{% if post.tags != [] %},所以我们只在_config.yml中添加array: []

我们现在可以做:

{% if post.tags != site.array %}
  Do something
{% endif %}

标签大小 returns 一个整数而不是一个字符串,所以你应该比较 0 而不是 '0'

{% if page.tags.size != 0 %}
  <!-- some code to render tags --> 
{% endif %}