HAMLについて


HAML
HAMLの著者Hampton氏は、RoRは革命的なWeb開発の枠組みとして、しかしそのテンプレートシステムは依然として旧世界(ASP、PHP、JSP)の風格を継続して、これは本当に受け入れられないので、HAMLがありました.
HAMLがRHTMLに比べて最大の利点は、構造がより明確で、コードがより美しく、ページが完全に互換性のあるXHTMLを生成することです.次に、HAMLがどのように動作しているかを一例で見てみましょう.
まず、RailsアプリケーションにHAMLプラグインをインストールする必要があります.
./script/plugin install http://svn.hamptoncatlin.com/haml/tags/stable

RHTMLファイルの接尾辞をHAML(app/view/people/index.rhtmlからapp/view/people/index.hamlなど)に変更します.
もしあなたのファイルがscaffoldを通過したらresourceが生成すると、このように見えます.
<h1>Listing people</h1>
<table>
  <tr>
    <th>Name</th>
    <th>Age</th>
  </tr>
  <% for person in @people %>
  <tr>
    <td><%=h person.name %></td>
    <td><%=h person.age %></td>
    <td><%= link_to 'Show', person_path(person) %></td>
    <td><%= link_to 'Edit', edit_person_path(person) %></td>
    <td><%= link_to 'Destroy', person_path(person), :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
  <% end %>
</table>
<br />
<%= link_to 'New person', new_person_path %>

HAMLを使用して書き換えると、次のように見えます.
%h1 Listing people
%table
  %tr
    %th Name
    %th Age
  - for person in @people
  %tr
    %td= person.name
    %td= person.age
    %td= link_to('Show', person_path(person))
    %td= link_to('Edit', edit_person_path(person))
    %td= link_to('Destroy', person_path(person), :confirm => 'Are you sure?', :method => :delete)
  - end
%br
= link_to('New person', new_person_path)

なお、HAMLはインデントを使用してHTMLの階層を制御するため、前のスペースは少なくなく、テンプレートの階層がより明確に見えるため、2の倍数で増加しなければならない.
この例は多少簡単です(CSSには触れていません)、もっと詳しい使い方は公式ガイドを参照してください(簡単ですが、20分程度の小さなガイドですが、全面的で、HAML自体は複雑ではありません).
しかし、多くの人は効率の問題を心配するかもしれません.簡単な表現は複雑なバックグラウンド処理を意味することが多いため、事実も確かにそうです.HAMLはRH TMLよりも多くの処理を行うため、HAMLはRH TMLよりも速くできないので、問題の鍵はそれによる性能の低下に耐えられるかどうかです.現在の最新バージョンのHAML(1.7)はRH TMLより約30%遅いだけで、HAMLの著者Hampton氏はHAMLの性能を2.0バージョンでRH TMLを超えるように努力していると話しています.
簡単明瞭な知識ベース