带块的自定义助手
Custom helper with block
我使用的是 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 %>
现在,这会在 tilt-2.0.9/lib/tilt/template.rb 的第 274 行引发 SyntaxError,它试图评估一个字符串。看起来,捕获超出了 "end".
我在这里做错了什么?如何使用 capture_html
和 concat_content
如果 Tilt 阻止助手获得块?
感谢您的帮助!
(我会在 Middleman forum 中问同样的问题。)
显然,在使用块时,必须去掉等号。以下作品:
<% wrap_me('span') do %>
Hello
<% end %>
我使用的是 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 %>
现在,这会在 tilt-2.0.9/lib/tilt/template.rb 的第 274 行引发 SyntaxError,它试图评估一个字符串。看起来,捕获超出了 "end".
我在这里做错了什么?如何使用 capture_html
和 concat_content
如果 Tilt 阻止助手获得块?
感谢您的帮助!
(我会在 Middleman forum 中问同样的问题。)
显然,在使用块时,必须去掉等号。以下作品:
<% wrap_me('span') do %>
Hello
<% end %>