/ -------------------------------------------
/ Identación
/ -------------------------------------------
/
Por la importancia que la identación tiene en cómo tu código es traducido,
la identación debe ser consistente a través de todo el documento. Cualquier
diferencia en la identación lanzará un error. Es una práctica común usar dos
espacios, pero realmente depende de tí, mientras sea consistente.
/ -------------------------------------------
/ Comentarios
/ -------------------------------------------
/ Así es como un comentario se ve en Haml.
/
Para escribir un comentario multilínea, identa tu código a comentar de tal forma
que sea envuelto por por una barra.
-# Este es un comentario silencioso, significa que no será traducido al código en absoluto
/ -------------------------------------------
/ Elementos Html
/ -------------------------------------------
/ Para escribir tus tags, usa el signo de porcentaje seguido por el nombre del tag
%body
%header
%nav
/ Nota que no hay tags de cierre. El código anterior se traduciría como
/ El tag div es un elemento por defecto, por lo que pueden ser escritos simplemente así
.foo
/ Para añadir contenido a un tag, añade el texto directamente después de la declaración
%h1 Headline copy
/ Para escribir contenido multilínea, anídalo.
%p
Esto es mucho contenido que podríamos dividirlo en dos
líneas separadas.
/
Puedes escapar html usando el signo ampersand y el signo igual ( &= ).
Esto convierte carácteres sensibles en html a su equivalente codificado en html.
Por ejemplo
%p
&= "Sí & si"
/ se traduciría en 'Sí & si'
/ Puedes desescapar html usando un signo de exclamación e igual ( != )
%p
!= "Así es como se escribe un tag párrafo "
/ se traduciría como 'Así es como se escribe un tag párrafo '
/ Clases CSS puedes ser añadidas a tus tags, ya sea encadenando .nombres-de-clases al tag
%div.foo.bar
/ o como parte de un hash Ruby
%div{:class => 'foo bar'}
/ Atributos para cualquier tag pueden ser añadidos en el hash
%a{:href => '#', :class => 'bar', :title => 'Bar'}
/ Para atributos booleanos asigna el valor verdadero 'true'
%input{:selected => true}
/ Para escribir atributos de datos, usa la llave :dato con su valor como otro hash
%div{:data => {:attribute => 'foo'}}
/ -------------------------------------------
/ Insertando Ruby
/ -------------------------------------------
/
Para producir un valor Ruby como contenido de un tag, usa un signo igual
seguido por código Ruby
%h1= libro.nombre
%p
= libro.autor
= libro.editor
/ Para correr un poco de código Ruby sin traducirlo en html, usa un guión
- libros = ['libro 1', 'libro 2', 'libro 3']
/ Esto te permite hacer todo tipo de cosas asombrosas, como bloques de Ruby
- libros.shuffle.each_with_index do |libro, indice|
%h1= libro
if libro do
%p Esto es un libro
/
Nuevamente, no hay necesidad de añadir los tags de cerrado en el código, ni siquiera para Ruby
La identación se encargará de ello por tí.
/ -------------------------------------------
/ Ruby en linea / Interpolación de Ruby
/ -------------------------------------------
/ Incluye una variable Ruby en una línea de texto plano usando #{}
%p Tu juego con puntaje más alto es #{mejor_juego}
/ -------------------------------------------
/ Filtros
/ -------------------------------------------
/
Usa un signo dos puntos para definir filtros Haml, un ejemplo de filtro que
puedes usar es :javascript, el cual puede ser usado para escribir JavaScript en línea.
:javascript
console.log('Este es un