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/05/10 15:26. 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>…</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 =

:markdown

= Note =

These can be quickly tested in `pry` (which is `gem install pry{,-doc}` then

run `pry` from the shell - it's a better `irb`) with:

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' | pry