将ERB模板转换为SLIM

时间:2012-04-27 08:46:31

标签: ruby-on-rails slim-lang

我的很多观点都是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 %>

谢谢:)

7 个答案:

答案 0 :(得分:24)

如何将.erb转换为.slim:

更新! 18-08-2015

您只需使用html2slim gem

即可
gem install html2slim

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

erb2slim -d <dir of your views>

View on devise wiki

更新结束!

您必须通过 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文件替换,然后被删除:

Screenshot

单个文件的替代方案

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

https://html2slim.herokuapp.com

html2slim-in-action

旧方法

所以我们走了:

# 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