我正在将多个html.slim文件转换为html.erb。在遵循了大量关于堆栈溢出的精彩建议和技巧后,我基本上完成了,但我对生成的html.erbs代码不满意。我知道它不会是完美的,但我在我的链接周围得到了一个额外的Temple::Utils.escape_html((...))
,如:
<%= ::Temple::Utils.escape_html((link_to "Jobs", jobs_path)) %>
我终于在这里找到了Dimitry_N(Stack Overflow)的答案,但即使像他建议的那样通过了--rails
标志,我仍然会得到多余的代码。
我遇到了一两个Regex选项,可以在创建文件后删除额外的代码,但我希望能找到一些扩展Dimitry答案的东西,这样它们就不会被插入。
有人经历过这种情况或知道解决方案吗?
escape_html
来自Temple,它是Slim引擎配置的一部分:
filter :Escapable
Temple::Filters:Escapable有一个disable_escape
选项。我在弄清楚的时候做了这个:
class ERBConverter < Slim::Engine
replace :StaticMerger, Temple::Filters::CodeMerger
replace :Generator, Temple::Generators::ERB
replace(:Escapable, :Escapable) { Temple::Filters::Escapable.new(disable_escape: true) }
end
puts ERBConverter.new.call(File.read("test.html.slim"))
<div class="flex bg-red-500">
<%= link_to "link", link_path, class: "a" %>
</div>
但后来注意到--option
标志,您可以将其传递给slimrb
:
$ slimrb -e -o disable_escape=true test.html.slim
<div class="flex bg-red-500">
<%= link_to "link", link_path, class: "a" %>
</div>
https://rubydoc.info/gems/slim/frames#available-选项