This page printed from:
panoptic.com/rking/Haml%2C+QED

For Our King, Only

Recent Changes / Heat / History /Edit

Haml, QED

This revision is from 2012/09/16 15:37. You can Restore it.

Haml is a simple lib for generating XHTML/XML without specifying needless parts.

It can be intimidating at first glance, because it seems so unlike the HTMLish stuff you're used to. Let's prove its superiority one feature at a time (this is a shortened version of http://haml-lang.com/tutorial.html ).

  1. %atag{a: b}
    is better than
    <atag a="b">…</atag>
  2. %atag.aclass
    is better than
    %atag{class: "aclass"}
  3. %atag#an_id
    is better than
    %atag{id: "an_id"}
  4. #div_id
    is better than
    %div#div_id
  5. = 3*2
    is better than
    <%= 3*2 %>

So, to put them together, compare the Erb of:

<div id="banner" class="shadowed" lang="en"><%= item.title %></div>

…versus the Haml of:

#banner.shadowed{lang: 'en'}= item.title

BTW(Edit)

:markdown

Note(Edit)

These can be quickly tested in `pry`, which is a better `irb` and can be

installed with:

gem install pry{,-doc}

pry -rhaml
    Haml::Engine.new('#testtest').render

…and, of course, if you find yourself doing this often, you could add

something like this to your ~/.pryrc —

def hammit haml
  require 'haml'
  Haml::Engine.new(haml).render
end

…then it's as simple as:

echo 'hammit %q{#testtest}' | pry