2010-02-11 3 views
44

J'ai un projet de rails, les vues sont uniquement constituées de fichiers HTML.ERB, mon client veut convertir ERB en HAML. J'ai trop de vues. Cela prend énormément de temps pour convertir les fichiers par fichiers. Alors que tout simplement je peux convertir HTML en haml? J'ai installé le plugin haml sous mon projet.Convertir html.erb existant en Haml

Répondre

26
+0

si je balise HTML image

+12

Ce n'est pas une mauvaise réponse, mais elle ne devrait pas être acceptée comme la meilleure réponse. L'outil de ligne de commande (ci-dessous) est meilleur. –

+1

S'il vous plaît lire le poste, il a dit qu'il ne voulait pas convertir chaque fichier individuel. – JackHasaKeyboard

96

Vous pouvez utiliser à partir de la ligne de commande de html2haml

html2haml your_erb_file new_haml_file 

Si vous voulez convertir tous vos fichiers en une seule fois, regardez cet article: http://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet

+3

Selon le [dernier code source html2haml] (https://github.com/haml/html2haml), html2haml "est en cours d'extraction à partir de la gemme haml." –

+2

maintenant un [gem séparé] (https://github.com/haml/html2haml). On dirait que la version actuelle ne passe pas aussi. –

+0

Je ne suis pas sûr de ce que les implications des deux commentaires ci-dessus sont censés être. J'ai décidé de donner un coup de feu à la ligne de commande 'html2haml' et cela semble fonctionner correctement. –

4

EDIT: html2haml fonctionne comme annoncé, mais vous devez utiliser la version obtenue à partir de la branche principale actuelle du haml github repoistory.

La version de html2haml incluse avec la gemme haml actuellement disponible chez rubygems n'est pas bonne. C'est la version que vous obtiendrez si vous deviez faire gem install haml dès maintenant. L'utilisation de la version fournie avec la gem entraînera un haml invalide, car elle ne peut pas traiter correctement ruby.

+1

Je voulais juste ajouter qu'à partir de maintenant (2011/7/21), le html2haml de gem haml fonctionne. Cependant, vous devez 'gem installer hpricot' et' gem installer ruby_parser' au dessus de haml. Si vous essayez de faire une conversion erb-> haml, il vous sera demandé d'installer ces gems. –

1

html2haml est maintenant dans le petit bijou de html2haml, vous pouvez donc utiliser:

$ gem install html2haml 
$ html2haml path/to/yourfile.html path/to/yourfile.haml 
+0

la réponse à l'échelle de l'application est ce qui est nécessaire, pas les fichiers individuels. personne ne veut taper des fichiers individuels. c'est seulement un pas au-dessus de le faire manuellement. une tâche à l'échelle de l'application gérera des fichiers individuels. – ahnbizcad

13

David Leung fournit this gem sur GitHub qui installe deux tâches de râteau. Avec erb2haml, vous pouvez facilement convertir un projet entier de erb en haml avec rake haml:convert_erbs ou rake haml:replace_erbs.

1

Très en retard au jeu ici, mais ce poste continue de voler haut dans le Google lors de la recherche de solutions similaires.

Installez le joyau html2haml, pop dans votre app/vues et pour cette solution:

find ./ -name '*.erb' -exec html2haml -e {} {}.haml \; 
find ./ -name "*.erb.haml" -exec sh -c 'mv "$1" "${1%.erb.haml}.haml"' _ {} \; 
find ./ -name '*.erb' -exec rm {} \; 

La faille dans cette solution est qu'il ne conserve pas l'historique des révisions de vos anciens fichiers .erb à vos nouveaux fichiers .haml. Mais à un moment où l'historique des révisions de ces fichiers n'est pas très important, cette solution m'a plutôt bien servi.

De même, veillez à vérifier les éventuelles erreurs dans la ligne html2haml avant de supprimer les anciens fichiers .erb.

8

très simple

dans votre Gemfile ajouter

gem "erb2haml", :group => :development 

puis exécutez bundle install

fo r Conversion *.erb à *.haml garder les fichiers originaux font:

rake haml:convert_erbs 

pour la conversion *.erb à *.haml remplacer les fichiers originaux font:

rake haml:replace_erbs 

il va chercher tous les erb fichiers dans le projet et convertir en haml.

Pour un raccourci: utiliser le convertisseur en ligne

http://www.htmltohaml.com

9

Sur le haml-rails git page, il fournit la commande cli faire convertir tous erb à HAML directement dans votre projet.

ajouter gem "haml-rails" à votre Gemfile

course: rake haml:erb2haml

+0

Si facile, et mieux que de tirer dans un autre joyau IMO. – labyrinth