gpt4 book ai didi

jekyll - 如何在jekyll中获取排序后的tags_list

转载 作者:行者123 更新时间:2023-12-02 05:13:43 25 4
gpt4 key购买 nike

我正在使用jekyll-bootstrap在 GitHub 上维护博客。

我想要一个排序的标签列表。帖子最多的标签排在第一位。然后我可以有一个显示器,显示具有较大字体大小的第一个标签和具有较小字体大小的最后一个标签。我还想要一个拼接功能。

如果在 python/Jinja2 中,我想要一些这样的代码:

{% for tag in sorted_tags[:10] %}
<li style="font-size:{{ tag.count }}px;">{{ tag.name }}</li>
{% endfor %}

ruby/jekyll 中的等效实现是什么?

最佳答案

这就是我按标签中帖子数量(降序)排序的方式,没有任何插件(即兼容 GitHub Pages)。

当您的标签名称包含空格时它也适用;只有 : 是禁止字符(但您可以轻松更改它们)。

{% capture counts_with_tags_string %}{% for tag in site.tags %}{{ tag[1] | size | prepend:"000000" | slice:-6,6 }}:{{ tag[0] }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
{% assign counts_with_tags = counts_with_tags_string | split:"," | sort | reverse %}

<ol>
{% for count_with_tag in counts_with_tags %}
{% assign tag = count_with_tag | split:":" | last %}
{% assign count = site.tags[tag] | size %}
<li><a href="/blog/tags/{{ tag | slugify }}">{{ tag }} ({{ count }})</a></li>
{% endfor %}
</ol>

这太恶心了。它的作用:

  • counts_with_tags_string 设置为类似 000005:first_tag,000010:second_tag,000002:third_tag 的字符串。零填充数字是使用过滤器链 | 生成的。前置:"000000"|切片:-6,6
  • 这是用逗号分割并按字典顺序排序的,这是由于零填充而起作用的。结果分配给 counts_with_tags
  • 最后,我们迭代元素并在 : 上拆分每个元素以找到原始标签名称。我们可以用同样的方式找到计数,但因为它是零填充的,所以使用 site.tags[tag] | 查找它更容易。大小改为。

关于jekyll - 如何在jekyll中获取排序后的tags_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com