Ryota400’s blog

エンジニアを目指して書いてます。

slim

slimとは

特徴

・< >や閉じタグなどを削り、最低限必要なものだけを残した、非常にシンプルなテンプレート言語

・軽量

といった特徴を持つ、Ruby製のテンプレートエンジンです。

つまり、このslimの記法を用いることによって、HTMLがより簡潔に記述できる。

Railsにはデフォルトでerbというテンプレートエンジンが導入されていますが、これをslimに変更したい場合、

Gemfile

gem 'slim-rails'

とGemfileに追記してあげた上で、bundle intallを実行後、viewファイルの拡張子をhtml.slimとしてあげればOK

注意

slim-rails導入後、ジェネレーター経由で生成されるviewファイルの拡張子は、.html.erbから.html.slimに変更される

・slimとerbの共存も可能ですが、一つのアプリケーション内に二つのテンプレートエンジンを使用すると記述がややこしくなってしまうので避けたほうが無難でしょう。 変更したい場合は、html2slimなどのgemを用いて記述を書き換えてしまうのが一般的です。

変更を行うとき、

gem install html2slim

これでhtml.erb → html.slim に変換させることができる!

slimの記法

erbの中でrubyのeach記法を使用したい場合

<% @articles.each do |a| %>
  <p><%= a.title %></p>
<% end %>

上記をslimに変更すると

- @articles.each do |a|
  p = a.title

他の例

クラスやidの指定

クラスやidはそれぞれ、., #で表現することができる。

erb

<dev class="content">
  <p class="title">タイトル</hoge>
</dev>
<dev id="content">
  <p id="title">タイトル</hoge>
</dev>

上記をslimに

dev.content
  p.title タイトル
dev#content
  p#title タイトル

・<>がいらない

・<%= %> →  =

・<% %> → -

・コメント → /

・id指定 → #

・class指定 → .

Image from Gyazo

参考文献

qiita.com