将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
清理ERB和HAML模板
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
旧方法
所以我们走了:
# 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