Sinatra の View に Haml を使ってみる

Haml というのを Sinatra を利用するようになってから始めて知った。Rails でも使えるんだね、知らなかった。考えもなしに erb を使ってた。
今回なぜ使おうかと思ったかというと、Sinatra の公式ページのテンプレートに関しての説明でまず始めに Haml が書かれているということと一度も使ったことがないから(書く程の理由でもないね)。
初めてなので簡単なものから。http://haml.ursm.jp/getting-started からサンプルを。

!!! XML
!!!
%html{html_attrs}
  %head
    %title Hello, Haml!
  %body
    %h1 Hello, Haml!

YAML と同じように、インデントでデータ構造を表しているようだ。閉じタグがないのでコードがすっきりして見える。繰り返しはどうするんだろうか。まぁ、それは追々調べよう。
上記の Haml をHTMLにすると次のようになった。

<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en-US' xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>Hello, Haml!</title>
  </head>
  <body>
    <h1>Hello, Haml!</h1>
  </body>

</html>

お、html タグの言語の属性が 'en-US' になっている。変更するには次のように記述すればいい。

%html{html_attrs('ja')}

参考