Haml
# Haml

Haml (en inglés, HTML Abstraction Markup Language) es un lenguaje de marcado ligero que se usa para describir el XHTML de un documento web sin emplear el código embebido tradicional. Está diseñado para solucionar varios problemas de los motores de plantillas tradicionales y también para ser un lenguaje de marcado tan elegante como sea posible. Haml funciona como reemplazo de sistemas de plantillas de páginas embebidas como PHP, RHTML y ASP. Sin embargo, Haml elimina la necesidad de escribir XHTML explícito dentro de la plantilla, por ser en sí una descripción de XHTML, más algo de código para generar contenido dinámico.

El equivalente de Haml para CSS es Sass.

## Principios

### El marcado debería ser bonito

    El marcado no debería usarse solamente como una herramienta para lograr que los navegadores muestren una página como el autor lo desee. El renderizado no es lo único que la gente tiene que ver; también se tiene que ver, modificar y entender el marcado. Por tanto, este debería ser tan amigable y placentero como el resultado del renderizado.

### El marcado no debería repetirse

    XHTML implica grandes repeticiones. La mayoría de los elementos deben ser nombrados dos veces: una vez antes de su contenido y otra después. ERB agrega aún más repetición y caracteres innecesarios. Haml evita todo esto recurriendo al sangrado en vez del texto para determinar dónde empiezan y terminan los elementos y los bloques de código. Esto no solo da como resultado plantillas más compactas sino que además hace el código mucho más limpio a la vista.

### El marcado debería tener buen sangrado

    Uno de los mayores problemas de los lenguajes de plantillas tradicionales es que no solo no fomentan el código bien sangrado sino que encima lo hacen difícil o incluso imposible de escribir. El resultado es un XHTML confuso e ilegible. Haml formatea las etiquetas de manera que todas estén bien sangradas y reflejen la estructura subyacente del documento.

### La estructura de XHTML debería ser clara

    XML y XHTML son formatos fundados sobre la idea de un documento estructurado. Tal estructura se refleja en su marcado, y asimismo debería reflejarse en metamarcado como Haml. Debido a que la lógica de Haml se basa en el sangrado de elementos hijos, esta estructura se preserva naturalmente, lo que hace al documento mucho más fácil y lógico de leer por simples humanos.

## Ejemplo

Nota: este es un simple ejemplo de muestra y puede no reflejar la versión actual del lenguaje.

El Haml de arriba produce este XHTML:

## Implementaciones

La implementación oficial de Haml está hecha para el lenguaje de programación Ruby con extensiones para Ruby on Rails y Merb, no obstante la implementación de Ruby también funciona de manera independiente.

## Desarrollo

Haml fue inventado en mayo de 2006 por Hampton Catlin. Sin embargo, Nathan Weizenbaum es el responsable de la madurez del código de Haml.

