---
title: Haml
url: https://www.grahambrooks.com/post/2010-12-19-haml/
date: 2010-12-19T00:00:00+00:00
author: Graham Brooks
tags:
- Web
- ruby
---

# Haml

[Haml](http://haml-lang.com/editors.html) is a markup language for generating xml and other markup - most
popularly HTML. Over the past few weeks I have been writing a few
[Ruby on Rails](http://rubyonrails.org/) applications and chose Haml
as the templating language. For someone who has traditionally avoided
positional languages this was a strange choice. Having written a few
simple applications I find that the writing HTML in Haml is both
straightforward and intuitive. Good HTML is naturally hierarchical and
having this structure both encouraged and enforced in Haml feels
right.

Generating

    #some-id.someclass

is one of the great things about haml

Produces

    <div id='some-id' class='someclass'></div>
	
There are definitely some quirks. Sometimes I have to switch styles or
div tags and in some cases declare them explicitly with a %div. These
cases are generally when generating html in iterators and not a big
deal. %script tags, in line with the rest of Haml, can't have
additional indentation - which encourages me to take this content and
push it into included JavaScript files, something that I think is good
practice anyway.
