ざっくりHaml
Haml (HTML Abstraction Markup Lunguage)
概要
- HTML template engin
- HTMLをスッキリ美しく
- 公式サイト: http://haml.info/
- リファレンス: http://haml.info/docs/yardoc/file.REFERENCE.html
コツ
- h1, tableなどは開始タグと閉じタグを削除し、%をタグにつける。
- id属性、class属性、その他の属性を追加する場合は、{}でハッシュ形式
- ifやeachなどロジック部分の行には、先頭に-
- インデントに気をつける
準備
作業用ディレクトリの作成
$ mkdir haml_lesson; and cd haml_lesson $ code .
Rubyのバージョンを指定
$ rbenv local 2.5.1 $ ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]
hamlのインストール
$ sudo gem update --system $ gem install haml $ gem list | grep haml haml (5.0.4)
変換
大まかな流れとして、hamlファイルをhamlに通すとhtmlが出来上がる。
$ string trim ' !!! %haml %body hello world! '> index.haml
htmlに変換
$ haml -q index.haml index.html # -q : シングルクォーテーションではなくダブルクオテーションを使用する
確認
$ less index.html
基本
- !!! → <!DOCTYPE html>
- % → 開始タグと終了タグ
属性
htmlっぽく書いたり,htmlっぽく書いたりできる
%p(class="test") hello world or %p{class: "test"} hello world ↓ <p class='test'>hello world</p>
他にもさまざまな書き方ができる
%div{id: "main", class: "test"} %div(id="main" class="test") %div#main.test #main.test ↓ <div class='test' id='main'></div>
コメント
/ end body ↓ <!-- end body --> / コメント コメント コメント ↓ <!-- コメント コメント コメント -->
hamlファイルのみのコメント
-# コメント
改行
%p hello ↓ <p>hello</p>
%p hello ↓ <p> hello </p>
%p< hello ↓ <p>hello</p>
Filter
:css .myStyle { color: red; } ↓ <style> .myStyle { color: red; } </style>
:javascript alert(1); if (1) { alert(2); } ↓ <script> alert(1); if (1) { alert(2); } </script>
%div :escaped <html> </html> ↓ <div> <html> </html> </div>
Rubyの評価
%p total is #{3 + 9} ↓ <p>total is 12</p>
%p= Time.now ↓ <p>2018-10-05 10:42:56 +0900</p>
- x = 10 %p= x ↓ <p>10</p>
- (1..10).each do |i| %p{id: "item_#{i}"} #{i} ↓ <p id='item_1'>1</p> <p id='item_2'>2</p> <p id='item_3'>3</p> <p id='item_4'>4</p> <p id='item_5'>5</p> <p id='item_6'>6</p> <p id='item_7'>7</p> <p id='item_8'>8</p> <p id='item_9'>9</p> <p id='item_10'>10</p>