【问题标题】:Custom helper with block带块的自定义助手
【发布时间】:2019-07-30 20:55:18
【问题描述】:

我正在使用 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,它试图评估一个字符串。看来,捕获已经超出了“终点”。

我在这里做错了什么?如果 Tilt 阻止助手有阻塞,如何使用 capture_htmlconcat_content

感谢您的帮助!

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

【问题讨论】:

    标签: erb middleman tilt middleman-4


    【解决方案1】:

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

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

    【讨论】:

    • 很有趣,用 slim,等号就可以了。
    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 2016-05-13
    • 2014-09-24
    相关资源
    最近更新 更多