Haml
Apparence
Haml
Le Haml (HTML Abstraction Markup Language) est un langage de balisage léger pour templates. Il est utilisé pour générer des documents XHTML sans utiliser la syntaxe HTML. Il se veut élégant et minimaliste. À l'instar de Python ou de Yaml, l'indentation est importante : elle permet la fermeture automatique des balises et blocs de code. Haml s'intègre bien à Ruby on Rails et Padrino (en).
L'équivalent de Haml pour les feuilles de style en cascade (CSS) est Syntactically Awesome Stylesheets (Sass).
Avantages
- Les documents n'étant plus encombrés par de nombreux symboles HTML (
<, >, id="", class=""…
), ceux-ci sont, pour certains, plus faciles à lire (notamment lors de l'entretien de nombreux templates structurant tout un site). Les deux documents suivants sont équivalents :
<div id="sidebar">
<ul class="main">
<li class="active">
<a href="accueil.html">
Accueil
</a>
</li>
<li>
<a href="nouvelles.html">
Nouvelles
</a>
</li>
<li class="disabled">
<a>Membres</a>
</li>
</ul>
</div>
#sidebar %ul.main %li.active %a{"href" => "accueil.html"} Accueil %li %a{"href" => "nouvelles.html"} Nouvelles %li.disabled %a Membres
- L'indentation stricte permet de se rendre compte plus rapidement des erreurs : le document HTML final ne se génère pas s'il y a une erreur de syntaxe. Cela peut par exemple éviter de perdre du temps dans l'analyse de bogues JavaScript interagissant avec le DOM.
Inconvénients
- Haml est « whitespace active », et s'appuie sur l'indentation uniforme pour chaque niveau de tiret. Tabulations et espaces doivent être maintenues constantes tout au long du document.
- Il n'y a pas d'éditeur Haml WYSIWYG, considérant qu'il existe de nombreux éditeurs HTML et XHTML. Toutefois, la communauté croissante des utilisateurs Haml a publié de nombreux addons sur Aptana, jEdit, NetBeans, Sublime Text et les éditeurs comme TextMate et vi. Cela permettant aux développeurs de modifier du code Haml dans un environnement qui intègre l'indentation et les règles syntaxiques.
Notes et références
- « Release 6.3.0 », (consulté le )