这是基于@Joel 的精彩回答。我不得不对其进行一些修改,因为一些宝石似乎已经移动,并且我进行了一些其他改进:
- 这是一个脚本,所以只需复制粘贴
- 最后不要删除 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
文件都被替换为.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 {} \;