液体模板在自定义块中获取令牌



我正在尝试使用液体模板构建自定义块。以下是我的代码:

module MyModule
    module Blocks
        class MyBlock < Liquid::Block
            def initialize(tag, markup, tokens)
                super
                @tag = tag
                @tokens = tokens
                @markup = markup
            end
            def render(context)
                p @tokens
            end
        end
    end
end
Liquid::Template.register_tag('myblock', MyModule::Blocks::MyBlock)

在我的模板中,我有以下代码:

{% for i in mypages %}
    {% myblock %} {{ i.title }} {% endmyblock %}
{% endfor %}

我的问题是我如何获取在myblock标签之间传递的所有内容,即如何使i.title可用于myblockrender函数。我以为tokens捕捉到了这一点,但是当我puts tokens时,它会输出[]

谢谢

Liquid::Blockrender方法返回开始标记和结束标记之间的文本。因此,只需将渲染方法更改为以下内容:

def render(context)
  p super
end

相关内容

  • 没有找到相关文章

最新更新