我的很多观点都是SLIM模板,我希望在我的应用中添加vote_form
部分。如何将此部分视图从ERB转换为SLIM?
<strong class="result">Votes: <%= voteable.votes_for - voteable.votes_against %></strong>
<%= form_tag user_votes_path(current_user) do |f| %>
<%= radio_button_tag :thumb_direction, :up %>
<%= radio_button_tag :thumb_direction, :down %>
<%= hidden_field_tag :voteable, @voteable %>
<%= submit_tag :vote %>
<% end %>
谢谢:)
答案 0 :(得分:24)
您只需使用html2slim gem
即可gem install html2slim
此软件包包含一个名为erb2slim
的工具,可以将erb文件递归转换为slim。选项-d
用于在转换完成后删除erb文件。
erb2slim -d <dir of your views>
您必须通过 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
这一切,玩得开心
答案 1 :(得分:6)
在这里,只需粘贴erb代码并点击“go”:
http://html2slim.herokuapp.com/
答案 2 :(得分:6)
这是基于@ Joel的精彩回答。我不得不修改它,因为一些宝石似乎已经移动了,我做了一些其他的改进:
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 {} \;
答案 3 :(得分:5)
我喜欢事实上的答案,但是我想人们会喜欢知道一种新的宝石,它可以更快地完成这项工作并减轻麻烦。然而现在它仍然是相当错误的。 :(
结帐html2slim。假设我想将所有视图从.erb
更改为.slim
,然后我(从头开始,从您的rails根目录)运行以下内容:
gem install html2slim
erb2slim app/views --delete
如果您运行erb2slim -h
,则可以看到-d
/ --delete
是删除erbs之后的选项,--trace
显示任何错误的完整回溯。作者的一个说明,它仍然是实验性的。
答案 4 :(得分:1)
只需将文件重命名为.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
答案 5 :(得分:0)
这是在线工具完全符合您的要求http://erb2slim.herokuapp.com将erb片段转换为苗条。
答案 6 :(得分:0)
与之前的答案一样,我使用了两个宝石:
gem install html2haml haml2slim
然后:
find app/views -name \*.erb -print | sed 'p;s/.erb$/.haml/' | xargs -n2 sh -c 'html2haml "$0" "$1" && rm "$0"'
用已转换的*.erb
版本替换*.haml
。
现在将*.haml
转换为*.slim
并删除*.haml
个文件:
haml2slim -d app/views
毕竟可选:
gem uninstall html2haml haml2slim