我在 github 上托管我的博客,并且想要一个解决方案来对不涉及任何 jekyll 插件的标签列表进行排序,因为 Github 不允许自定义插件(jekyll bootstrap 也尝试这样做)。我在这里的帖子并没有真正回答这个问题,因为我按标签名称排序,而不是按大小排序。您可以调整此方法以在字符串中输出标签大小,然后进行一些更漂亮的拆分以获得不同的排序顺序(但这会很混乱)
我能够使用以下代码做到这一点:
{% capture tagString %}{% for tag in site.tags %}{{ tag[0] }}{% unless forloop.last %}|{% endunless %}{% endfor %}{% endcapture %}
{% assign tags = tagString | split: '|' | sort: 'downcase' %}
<div id="cloud">
{% for tag in tags %}
{% assign number = site.tags[tag].size %}
{% assign slug = tag | downcase | replace: ' ', '_' %}
<span class="{% if number == 1 %}small{% elsif number <= 5 %}medium{% elsif number <= 10 %}large{% else %}huge{% endif %}">
<a href="#tag-{{ slug }}">{{ tag | downcase }}</a>
</span>
{% endfor %}
</div>
这有点奇怪,因为我捕获了一串标签(|
用作分隔符)然后用它来创建一个数组。在那之后(在循环中),我可以将标签称为tag
,并将使用该标签的网站列表称为site.tags[tag]
.
我在我的博客上使用它:
https ://github.com/kelsin/kelsin.github.io/blob/master/tags/index.html
其余的代码就是我选择在我的标签页面上制作标签云的方式。希望这可以帮助其他人寻找解决方案(没有插件)!