Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
doc-src
ext
extra
lib
rails
test
vendor
yard
.gitignore
.gitmodules
.travis.yml
.yardopts
CONTRIBUTING
MIT-LICENSE
Makefile
README.md
Rakefile
TODO
VERSION
VERSION_NAME
haml.gemspec
init.rb

README.md

Haml

HamlはHTMLのためのテンプレートエンジンです。HTMLをより簡単に、楽しく書くために設計されており、冗長性を排し、文書の構造を反映した記述ができます。また、エレガントですぐに習得できる強力な文法を提供します。

使用方法

Hamlはコマンドラインからも使用することも、またRubyのフレームワークの一部として利用することもできます。

gem install haml

HTMLをHamlで書き終えたら、以下のコマンドでコンパイルすることができます。

haml document.haml

より詳しい情報を知りたい方は、以下のコマンドで確認して下さい。

haml --help

Rails2でHamlを利用したい場合は、config/environment.rbconfig.gem "haml"を書き加えます。Rail3の場合はGemfilegem "haml"を追加します。これでHamlとSassの両方がインストールされます。拡張子.html.hamlのviewファイルは自動的にHamlとして解釈されます。

プログラムの一部としてHamlを利用したい場合は、YARD documentationをご覧下さい。

フォーマット

Hamlの最も基本的な文法は、HTMLを手早く生成するためのものです。

%tagname{:attr1 => 'value1', :attr2 => 'value2'} Contents

終了タグは不要です。Hamlが自動的にうまくやってくれるからです。もしHTMLに近いスタイルの方が好きでしたら、属性部分を以下のように書くこともできます。

%tagname(attr1='value1' attr2='value2') Contents

classidはもっと簡単に書くこともできます。CSSで文書のスタイルを指定するときと同じ文法を使うことができるからです。

%tagname#id.class

実は<div>タグを使う場合はさらに簡単にするこたおができます。<div>タグは頻繁に用いられるので、名前を指定しないタグはデフォルトでdivになります。

#foo Hello!

と書くと、以下のようにコンパイルされます。

<div id='foo'>Hello!</div>

Hamlはインデントを使って、個々の要素をHTMLとして構造化します。ある要素の子要素は、親要素よりも深くインデントされます。改めて確認しておきますが、終了タグは自動的に挿入されます。

%ul
  %li Salt
  %li Pepper

と書くと、以下のようにコンパイルされます。

<ul>
  <li>Salt</li>
  <li>Pepper</li>
</ul>

プレーンテキストをどのまま子要素にすることもできます。

%p
  Hello,
  World!

Hamlで書かれたドキュメントの中にRubyのコードを埋め込むこともできます。等号記号=を書くと、コードを評価した結果が出力されます。ハイフン-はコードを評価しますが、その結果は出力されません。if文やwhile文を使うこともできます。

%p
  Date/Time:
  - now = DateTime.now
  %strong= now
  - if now > DateTime.parse("December 31, 2006")
    = "Happy new " + "year!"

Hamlはここに書いたことよりもはるかに多くの機能を提供します。詳しくはreference documentationを御覧下さい。

インデント

Hamlのインデントには1つ以上のタブかスペースです。ただし、インデントはドキュメントの中で一貫している必要があります。タブとスペースが混在させることができませんし、タブやスペースの数も揃っていなければなりません。

作者

Hamlを最初に実装したのはHampton Catlin(hcatlin)ですが、彼は関与することはなくなっていて、今は時折相談に乗る程度です。Hamptonはフロリダ州のジャクソンビル在住の、Wikimedia財団に所属する上級モバイル開発者です。

Nathan Weizenbaumは、Hamlの「モダン」なRuby実装を設計した主要な開発者です。フォーラムに次から次への投稿される質問に答えたり、バグを修正したり、リファクタリングをしたり、高速化の手法を見つけたり、ドキュメントを書いたり、新機能を実装したり、ハンプトン・コーヒーを飲んだり(これは天才にはうってつけの仕事です)、彼の奮闘はプロジェクトを支えています。ネイサンはワシントン州シアトルに住んでおり、ワシントン大学の学生でもインターンでもないのですが、Unspace Interactive社でコンサルタントとして働いています。

このソフトウェアを利用するには、ハンプトンにお礼を述べた上で、ネイサンにジェリービーンズを買ってやる必要があります。あるいはペットのネコの相手をしてあげるのでも構いません。

Hamlの一部はUnscpae Interactive社の助けを受けて制作されました。

あと、このHaml実装はMITライセンスのもとで公開されています。だから実を言うと、利用の際にわざわざ作者に声をかけなくても大丈夫(でも、一言くらいは欲しいかも)。