Plus concis que ERB, le langage HAML permet d'écrire un code clair pour les vues et les composants.

1. Référence

Voir le site de référence http://haml.info/

L'indentation des lignes du code donne le niveau d'imbrication du code HTML ou Ruby, les blocs sont implicitement fermés.
Les lignes sont indentées par une nombre pair de caractère espace (pas de code de tabulation ! régler votre éditeur de texte en conséquence.).

Exemple :

Code HAML Code ERB équivalent
#categorie
- if @space.parent_id != @site.root_space_id
= render 'p2001_space_header'
<div id="categorie">
<% if @space.parent_id != @site.root_space_id %>
<%= render 'p2001_space_header' %>
<% end>
</div>

2. Principales instructions

%xx Balise HTML xx
#xx Identifiant id="xx" (balise <div> implicite)
.xx Attribut class="xx" (balise <div> implicite)
(attr=val) Attribut attr=val (val est une chaine ou une variable)
- xx Instruction Ruby xx (le résultat n'est pas généré en sortie)
= xx Évaluation Ruby (le résultat est généré en sortie)
-# xx Commentaire Ruby (non généré en sortie)
/xx Commentaire HTML (généré en sortie)
#{xx} Interpolation Ruby (le résultat du code est intégré à la ligne source)
:javascript Balise <script>
:css Balise <style>

Toute ligne commençant par un symbole différent ou par le caractère d'échappement '\' est reproduite en sortie.

2.1. Coupure de ligne

Terminer chaque ligne par le caractère '|'.

Ceci n'est souvent pas nécessaire si la coupure de l'instruction Ruby est régulière et si l'indentation de la ligne suite est entière (nombre pair d'espaces).

version 0.8.2-0223-120909
↑ Haut