我正在编写一个自定义Liquid标签作为Jekyll插件,我需要保留一些值,直到下一次调用当前运行的jekyll build
命令中的标签。
我是否可以使用一些全局位置/命名空间来存储和检索值(最好是键值对/哈希)?
答案 0 :(得分:0)
您可以添加一个带有类变量的模块来存储持久值,然后在您的标记类中包含该模块。您需要适当的访问器,具体取决于变量的类型和您可能想要进行的分配。这是一个简单的例子,它实现了一个简单的计数器,可以跟踪DataToKeep::my_val
中标记被调用的次数:
module DataToKeep
@@my_val = 0
def my_val
@@my_val
end
def my_val= val
@@my_val = val
end
end
module Jekyll
class TagWithKeptData < Liquid::Tag
include DataToKeep
def render(context)
self.my_val = self.my_val + 1
return "<p>Times called: #{self.my_val}</p>"
end
end
end
Liquid::Template.register_tag('counter', Jekyll::TagWithKeptData)