带块的自定义助手

时间:2019-03-08 19:26:22

标签: erb middleman tilt middleman-4

我正在使用当前版本的Middleman 4.3.3。

我想定义一个接受帮助的自定义帮助器。为了简单起见,这是wrap_me的荒谬示例,它用给定的标签包装了块内容。

应该可以使用capture_html provided by Padrino(在Middleman文档中明确提到)来实现此目的:

module CustomHelpers
  def wrap_me(tag, &block)
    captured = capture_html(&block)
    concat_content "<#{tag}>" + captured + "</#{tag}>"
  end
end

放入ERB:

<%= wrap_me('span') do %>
  Hello
<% end %>

现在,这会在倾斜-2.0.9 / lib / tilt / template.rb的第274行上引发一个SyntaxError,它试图评估一个字符串。看来,捕获已经超出了“结束”范围。

我在这里做错了什么?如果Tilt阻止帮助程序出现障碍,该如何使用capture_htmlconcat_content

感谢您的帮助!

(我会在Middleman forum中问同样的问题。)

1 个答案:

答案 0 :(得分:0)

显然,使用块时,必须删除等号。以下作品:

<% wrap_me('span') do %>
  Hello
<% end %>