我正在尝试使用Liquid Templating构建自定义块。 以下是我的代码:
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
的{{1}} myblock
功能可用render
。我认为tokens
会抓住这个,但当我puts tokens
时会输出[]
谢谢
答案 0 :(得分:1)
render
Liquid::Block
方法返回开始和结束标记之间的文本。所以只需将渲染方法更改为:
def render(context)
p super
end