HAML, une vision différente
édité Le 07/05/2010 à 21:10 par Trinoo
En développement informatique, il ne faut pas se laisser aller et prendre l'habitude, stagner, devenir inerte, anti-progressiste aux nouvelles évolutions, certes difficiles à suivre, avec une cadence à forme exponentielle... à vous de voir... Il n'y a que les stupides qui ne changent pas d'idée.
HAML, c'est quoi ?
HAML est un moteur de vue ou de template (si on veut), qui nous offre une codification différente , ergonomique, économique en codage. Sa structure nous permet de se passer de pas mal d'éléments afin de simplifier la structure. Un code écrit dans la syntaxe de HAML, est plus visible, facile et rapide à modifier.
Pour être convainquant, il faut déjà passer à l'action et en faire l'exemple, c'est pour ça que je metterais les vues de ce portail(béta) en exemple
Installation
gem install haml
haml --rails le/repertoire/de/mon/application/
Je commencerais par la vue concernant l'affichage des dernières infos
<% @infos.each do |n| %> <h2><%= link_to n.titre, :action => 'show', :id => n.url %></h2> <p>édité par <strong><%= n.user.name %> <%= n.user.coname %></strong> Le <%= n.created_at.strftime("%d/%m/%Y à %H:%M") %><p> <p><%= n.shortbody %></p> <% end %> <%= will_paginate @infos %>
...et voici la métamorphose en HAML
- @infos.each do |n| %h2= link_to n.titre, :action => 'show', :id => n.url :textile édité par *#{h n.user.name}* *#{h n.user.coname}*</b> Le _#{h n.created_at.strftime("%d/%m/%Y à %H:%M")}_ %p= n.shortbody = will_paginate @infos
Première constation : pas de balise de fermeture ; l'encapsulation des balises se fait avec un décalage vers la droite avec deux caractères "espace", cela nous rappelle Pyhon.
La fin de la boucle "end" a complètement disparu. On en a pas besoin, un retour vers la gauche de deux caractères "espace", nous explique que la boucle s'est fermé et qu'on passe à autre chose.
A coté de HAML, j'ai utilisé un autre outil de mise en forme, "RedCloth", ce dernier m'a permis de placer des balises encapsulées sur une seule ligne (italique et gras mélangés). Pour utiliser ce "filtre", il suffit de placer ":textelise".
N'hésitez pas à consulter la documentation HAML pour explorer les autres balises et subtilité de ce "language" de markage pragmatique.
Sources :
HAML : http://haml-lang.com/
RedCloth : http://redcloth.org/


