标签/结束标签中的多行处理

时间:2014-02-23 16:49:23

标签: ruby regex jekyll fluid

我尝试读写几行数据。

{% 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

一般问题是:如何处理标签和终端标签之间的多条线。

0 个答案:

没有答案