我尝试读写几行数据。
{% tag1 hello %}
value1 10
value2 20
value3 30
{% endtag1 %}
这是我的Jekyll代码:
module Jekyll
class MyClass < Liquid::Block
@tmp = nil
def initialize(tag_name,text,tokens)
super
end
def render(context)
output = super
@tmp = output
msg = ""
while @tmp =~ /(\w+)(\s+)(\w+)/i do
case $1
when 'value1'
msg = msg + "<div>Value1 = #{$3}</div>"
when 'value2'
msg = msg + "<div>Value2 = #{$3}</div>"
when 'value3'
msg = msg + "<div>Value3 = #{$3}</div>"
else
msg = msg + "<div>Error: #{@tmp}</div>"
end
@tmp = $'
end
msg
end
end
end
Liquid::Template.register_tag('tag1',Jekyll::MyClass)
结果是:
Error: value1 10 value2 20 value3 30
Error: 10 value2 20 value3 30
Error: value2 20 value3 30
Error: 20 value3 30
Error: value3 30
Error: 30
Error:
我被期待:
Value1 = 10
Value2 = 20
Value3 = 30
一般问题是:如何处理标签和终端标签之间的多条线。