【问题标题】:I can't get site.tags[some_tag].size in Jekyll我无法在 Jekyll 中获取 site.tags[some_tag].size
【发布时间】:2017-07-15 10:39:02
【问题描述】:

我尝试在我的 jekyll 博客中显示标签云,如下所示

https://superdevresources.com/tag-cloud-jekyll/

但是,我无法访问 tag.tags.size

这是sidebar.html的代码

{% assign tags = site.tags | sort %}
{% for tag in tags %}
  <span>
    <a href="/tags/{{ tag.slug }}" class="tag-reverse">
      <span>{{ tag.name }}</span>
      <span>({{ tag.tags.size }})</span>
                    ^ This is always null
    </a>{% unless forloop.last %}{% endunless %}
  </span>
{% endfor %}

我认为tag.tags 中的size 代表特定标签中的帖子数。但是null总是来的,即使标签里有帖子

仅供参考,这是_config.xml的一些内容

# Tags
collections:
  tags:
    output: true
    permalink: /tags/:path/

defaults:
  - scope:
      path: ''
      type: tags
    values:
      layout: tag

你可以通过https://github.com/closer27/closer27.github.io访问我的博客仓库

谢谢你帮助我

【问题讨论】:

    标签: tags size jekyll liquid


    【解决方案1】:

    理想情况下,site.tags 将由您使用的标签填充。但在您的情况下,它会被您的 _tags 集合覆盖。

    没关系,因为你只有一个集合(_posts),你可以生成标签大小如下:

    {% for tag in site.tags %}
      <span>
        <a href="/tags/{{ tag.slug }}" class="tag-reverse">
          <span>{{ tag.name }}</span>
          <span>
            ({{ site.posts | where_exp: 'post', 'post.tags contains tag.name' | size }})
          </span>
        </a>
      </span>
    {% endfor %}
    

    【讨论】:

    • 谢谢,我不知道 jekyll 的模板。但是当我把你的代码作为我的源代码时,我可以在每个循环中得到 '31',而不是每个标签的大小。我想这是所有帖子的计数,我正在寻找一个正确的表达方式
    • 哦,我明白了。 where_exp 在 v3.2.0 上可用。所以我更新了 jekyll 就完成了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    相关资源
    最近更新 更多