是否可以定义一个自定义帮助方法,该方法输出<script>
标记并将capture
d块解释为Javascript?
说我想在IIFE中包装我的Javascript。我希望能够在我的Slim模板中写下这个:
= javascript_iife do
console.log("Hello, world!");
让它编译成这个HTML:
<script>
(function() {
console.log("Hello, world!");
})();
</script>
这个助手几乎做了我想要的事情:
def javascript_iife(&block)
javascript = capture(&block)
raw("<script>(function() {") + javascript + raw("})();</script>")
end
但它并不将该块解释为Javascript,而是将其解释为Slim风格的HTML(导致语法错误)。我必须将我的Slim模板重写为:
= javascript_iife do
| console.log("Hello, world!");
我能否以原始模板按预期工作的方式实现帮助程序?或者我可以实现类似于Javascript过滤器(javascript_iife:
)的自定义过滤器(javascript:
)吗?