Ste*_*eve 5 ruby-on-rails erb slim-lang
我正在将多个 html.slim 文件转换为 html.erb。在遵循了大量有关堆栈溢出的精彩建议和技巧之后,我已经基本完成了,但我对生成的 html.erb 代码并不满意。我知道它不会是完美的,但我Temple::Utils.escape_html((...))在链接中得到了额外的信息,如下所示:
<%= ::Temple::Utils.escape_html((link_to "Jobs", jobs_path)) %>
我终于在这里找到了Dimitry_N(Stack Overflow)的答案,但即使我--rails按照他的建议传递了标志,我仍然得到了多余的代码。
我遇到过一两个正则表达式选项来在创建文件后删除附加代码,但我希望找到一些扩展 Dimitry 答案的内容,以便它们不会首先插入。
有没有人经历过这个或知道解决方案?
escape_html来自Temple ,它是Slim引擎配置的一部分:
filter :Escapable
Run Code Online (Sandbox Code Playgroud)
Temple::Filters::Escapeable有一个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
Run Code Online (Sandbox Code Playgroud)
puts ERBConverter.new.call(File.read("test.html.slim"))
<div class="flex bg-red-500">
<%= link_to "link", link_path, class: "a" %>
</div>
Run Code Online (Sandbox Code Playgroud)
但后来注意到了--optionflag,你可以将它传递给slimrb:
$ slimrb -e -o disable_escape=true test.html.slim
<div class="flex bg-red-500">
<%= link_to "link", link_path, class: "a" %>
</div>
Run Code Online (Sandbox Code Playgroud)
https://rubydoc.info/gems/slim/frames#available-options
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |