将ERB模板转换为SLIM

我的很多观点都是SLIM模板,我希望在我的应用程序中添加一个部分的vote_form 。 如何将此部分视图从ERB转换为SLIM?

 Votes:        

谢谢 :)

如何将.erb转换为.slim:

更新! 18-08-2015

你可以简单地使用html2slim gem

 gem install html2slim 

这个软件包包括一个名为erb2slim的工具,它可以将erb文件递归转换为slim。 选项-d用于在转换完成后删除erb文件。

 erb2slim -d  

在设计维基上查看

更新结束!

你必须通过HAML

在您的环境或gemset上安装HAML依赖项

 gem install html2haml # This was moved out of haml gem gem install ruby_parser 

切换到HAML模板

 find . -name '*erb' | \ xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \ bash 

安装SLIM工具依赖项

 gem install haml2slim # https://github.com/fredwu/haml2slim 

切换到SLIM模板

 find . -name '*haml' | \ xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \ bash 

清理ERBHAML模板

 find . -name '*erb' -exec rm -f {} \; find . -name '*haml' -exec rm -f {} \; 

删除依赖项

 gem uninstall html2haml gem uninstall ruby_parser gem uninstall haml2slim 

这一切,玩得开心

在这里,只需粘贴erb代码并点击“go”:
http://html2slim.herokuapp.com/

这是基于@ Joel的精彩回答。 我不得不修改它,因为一些gem似乎已经移动,我做了一些其他的改进:

  • 这是一个脚本所以只需复制粘贴
  • 不要删除最后的gem,因为我可能需要这个用于下一个项目(例如,当我创建设计视图时)
  • 然后可以发射gem install ...部分以便更快地处理。

转换文件

更新 :不再需要通过haml进行转换。 这是更新的脚本:

 #### gem install html2slim # this will install `erb2slim` command line tool. find . -name '*erb' | \ xargs ruby -e 'ARGV.each { |i| puts "erb2slim #{i} #{i.sub(/erb$/,"slim")}"}' | \ bash # Clean ERB templates find . -name '*erb' -exec rm -f {} \; git add app/views/* git commit -m "Replace erb with slim" 

结果

在我的示例中(在运行rails g devise:views .erb rails g devise:views ),所有.erb文件都替换为.slim文件,然后删除:

截图

单个文件的替代方案

有时我只是想转换剪辑。 就像之前提到的那样。 在这种情况下我使用

https://html2slim.herokuapp.com

html2slim在行动

旧方法

所以我们走了:

 # You must pass through HAML ! # Install HAML dependencies on your environment or your gemset gem install haml html2haml hpricot ruby_parser haml2slim # Switch to HAML templating find . -name '*erb' | \ xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \ bash #Switch to SLIM templating find . -name '*haml' | \ xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \ bash # Clean ERB and HAML templates find . -name '*erb' -exec rm -f {} \; find . -name '*haml' -exec rm -f {} \; 

我喜欢事实上的答案但是我想人们会喜欢知道一种新的gem,这种gem能够更快地完成这项工作并且不那么麻烦。 然而现在它仍然是相当错误的。 🙁

看看html2slim 。 假设我想将我的所有视图从.erb.slim ,然后我(从头开始,从您的rails根目录)运行以下内容:

 gem install html2slim erb2slim app/views --delete 

如果你运行erb2slim -h你可以看到-d / --delete是一个删除erbs的选项, – trace显示任何错误的完整回溯。 作者的一个说明,它仍然是实验性的。

只需将文件重命名为.html.slim而不是.html.erb ,然后用以下内容替换内容:

 strong.result= "Votes: #{voteable.votes_for - voteable.votes_against}" = form_tag user_votes_path(current_user) do = radio_button_tag :thumb_direction, :up = radio_button_tag :thumb_direction, :down = hidden_field_tag :voteable, @voteable = submit_tag :vote 

这是在线工具完全符合您的要求http://erb2slim.herokuapp.com将erb片段转换为苗条。

和以前的答案一样,我使用了两个gem:

  gem install html2haml haml2slim 

然后:

  find app/views -name \*.erb -print | sed 'p;s/.erb$/.haml/' | xargs -n2 sh -c 'html2haml "$0" "$1" && rm "$0"' 

用转换后的*.haml版本替换*.erb

现在将*.haml转换为*.slim并删除*.haml文件:

  haml2slim -d app/views 

毕竟可选:

  gem uninstall html2haml haml2slim