Haml/SassをRailsで使い始める方法を解説します。Haml 2.0.9、Rails 2.2.2を対象にしています。
HamlはHTMLを生成するためのマークアップ言語です。読みやすく書きやすい、簡潔な記法を特徴としています。
SassはCSSを生成するためのメタ言語です。本来のCSSでは不可能な構造化記述、定数の使用、算術演算などをサポートします。
Haml/Sassのオリジナル実装はHampton Catlinによって作られました。現在のメインメンテナはNathan Weizenbaum です。Haml/SassはMITライセンスで提供されています。ソースコードはGitHubから入手できます。
gemコマンドでインストールします。SassはHamlに含まれています (単独のパッケージはありません)。
$ gem install haml Successfully installed haml-2.0.9 1 gem installed
haml --rails path/to/rails_appを使用します。
$ rails hello_haml $ cd hello_haml $ haml --rails . Haml plugin added to .
vendor/plugin/hamlにHamlをロードするコードが生成されます。
$ ls vendor/plugin/haml init.rb
通常のerbファイルと同じ場所 (app/views/controller_name/) に拡張子*.html.hamlで作成します。
$ script/generate controller hello $ vim app/views/hello/index.html.haml
!!! XML
!!!
%html{html_attrs}
%head
%title Hello, Haml!
%body
%h1 Hello, Haml!
早速動作を確認してみましょう。
$ script/server
ブラウザでhttp://localhost:3000/helloを開いてみてください。Hamlから生成されたHTMLが表示されるはずです。
public/stylesheets/sassに拡張子*.sassで作成します。
$ mkdir public/stylesheets/sass $ vim public/stylesheets/sass/style.sass
h1
:color red
先程作成したapp/views/hello/index.html.hamlを以下のように修正します。
!!! XML
!!!
%html{html_attrs}
%head
%title Hello, Haml!
= stylesheet_link_tag 'style'
%body
%h1 Hello, Haml!
再度http://localhost:3000/helloを開いてみましょう。Sassで定義したスタイルが適用されているはずです。
stylesheet_link_tag 'sass/style'ではないことに注意してください。Sassはpublic/stylesheets/*.cssへのアクセスをフックし、自動的にCSSを生成します。