【发布时间】:2013-10-23 17:44:56
【问题描述】:
我正在尝试使用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 可用于myblock 的render 函数。我以为tokens 捕捉到了这一点,但是当我puts tokens 它输出[]
谢谢
【问题讨论】:
-
我这里没有答案,但是在调试方面,将
{% myblock %}....从for循环中提取出来,并直接放入帖子/页面,并带有一个静态值:{% myblock %} this is my block {% endmyblock %}。这样你就知道你应该期待什么了。
标签: ruby jekyll liquid redcarpet