我正在将自定义 Liquid 标签编码为 Jekyll 插件,我需要为其保留一些值,直到在当前运行的命令中下一次调用该标签。jekyll build
是否有一些全局位置/命名空间可用于存储和检索值(最好是键值对/哈希)?
我正在将自定义 Liquid 标签编码为 Jekyll 插件,我需要为其保留一些值,直到在当前运行的命令中下一次调用该标签。jekyll build
是否有一些全局位置/命名空间可用于存储和检索值(最好是键值对/哈希)?
您可以添加一个带有类变量的模块来存储持久值,然后将该模块包含在您的标记类中。您将需要适当的访问器,具体取决于变量的类型和您可能想要进行的分配。这是一个简单的示例,它实现了一个简单的计数器,用于跟踪标签被调用的次数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)