【发布时间】:2014-09-02 06:10:28
【问题描述】:
抱歉,我是 Ruby 新手,但我正在尝试向我的模板添加一个液体标签,我可以循环显示五个最受欢迎标签的列表。
由于某种原因,这个插件在我使用时只输出一个标签。
这是我放入 mu 插件的内容:
module Jekyll
class PopularTags < Liquid::Tag
def initialize(tag_name, text, tokens)
super
end
def render(context)
tags = context.registers[:site].tags
return tags.sort_by { |tag, posts| posts.count }
end
end
end
Liquid::Template.register_tag('popular_tags', Jekyll::PopularTags)
这是我在模板中输入的内容:
{% popular_tags %}
【问题讨论】:
-
尝试检查
popular_tags返回的内容,同时在不带参数的初始化时调用super味道不好。 -
当它离开 ruby 方法时,它被正确排序。
-
好的,我正在取得进展。现在我似乎无法在 for 循环中循环标记,但如果我只是将其转储到 Liquid 中,它就在那里,已排序。