9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsでhamlを使う

Last updated at Posted at 2020-07-28

#プログラミングの勉強日記
2020年7月29日 Progate Lv.226

#概要
 こちらの記事で扱ったgemのhamlを説明する。hamlはHTML Abstraction Markup Languageの略で、簡単にHTMLのコードを書くことができる。erbと同じでRubyのコードを埋め込むこともできる。
 hamlには閉じタグが存在しないので、コードを簡単かつすっきり書くことができる。

#使い方
 hamlを使うためにGemfileを編集する

Gemfile
gem 'haml-rails'

Gemfileを編集したら、hamlをインストールする。

ターミナル
bundle install

 これで、index.html.hamlといったビューファイルの拡張子にhamlを使えるようになる。

##すでにあるerbファイルをhamlファイルに変えたい場合

Gemfile
gem 'haml-rails'
gem 'erb2haml'
ターミナル
  erbファイルを残して変換
$ rake haml:convert_erbs

  erbを削除して変換
$ rake haml:replace_erbs

#基本的な書き方
 %タグ名と記述することで、開始タグと閉じタグに変換する。

index.html.haml
%html
 %body
  %div
   Hello World!

HTMLで以下のように変換されている

index.html
<html>
 <body>
  <div>
   Hello World!
  </div>
 </body>
</html>

#hamlの書き方

##各タグの書き方

hamlでの書き方 コンパイル後のコード(HTML)
%div <div></div>
%html <html></html>
%meta <meta></meta>
%header <header></header>
%footer <footer></footer>
%table <table></table>
%h1 <h1></h1>
%p <p></p>
%a <a></a>
%ul <ul></ul>
%li <li></li>

##属性の書き方
 タグ内の属性は2つの書き方がある。

haml
%a(href='http://www~')
  リンク先の名前

%a{ href: 'http://www~' }
 リンク先の名前

HTMLでは以下のように変換されている

html
<a href="http://www~">
  リンク先の名前
</a>

##IDとclassの書き方

haml
# idの指定
%div#id_name
  idを指定する

# クラスの指定
%div.class_name
  クラスを指定する

HTMLでは以下のように変換されている。

html
<div id="id_name">idを指定する</div>

<div class="class_name">クラスを指定する</div>

idとクラスを両方指定することもできる。

haml
%div.contemt#content1

HTMLでは以下のように変換されている。

html
<div class="content" id="content1">
</div>
9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?