0

我正在将自定义 Liquid 标签编码为 Jekyll 插件,我需要为其保留一些值,直到在当前运行的命令中下一次调用该标签。jekyll build

是否有一些全局位置/命名空间可用于存储和检索值(最好是键值对/哈希)?

4

1 回答 1

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)
于 2013-08-09T02:49:19.717 回答