2010-02-11 16 views
44

Mam projekt szyn, widoki składają się tylko z plików HTML.ERB, mój klient chce przekonwertować ERB na HAML. Mam zbyt wiele plików widoków. Zajmuje dużo czasu, aby przekonwertować plik po pliku. Czy mogę w prosty sposób przekonwertować HTML na haml? Zainstalowałem wtyczkę Haml w moim projekcie.Konwertuj istniejący plik html.erb na Haml

Odpowiedz

26
+0

jeśli mam HTML znacznika obrazu

+12

To nie jest "zła" odpowiedź, ale nie powinno być akceptowane jako najlepsza odpowiedź. Narzędzie wiersza poleceń (poniżej) jest lepsze. –

+1

Proszę przeczytać post, powiedział, że nie chce konwertować poszczególnych plików. – JackHasaKeyboard

96

Można używać z wiersza poleceń html2haml

html2haml your_erb_file new_haml_file 

Jeśli chcesz przekonwertować wszystkie pliki w jednym zamachem, spojrzeć na ten artykuł: http://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet

+3

Zgodnie z [najnowszym kodem źródłowym html2haml] (https://github.com/haml/html2haml), html2haml "jest w trakcie wydobywania z klejnotu Haml." –

+2

teraz [oddzielny klejnot] (https://github.com/haml/html2haml). wygląda na to, że aktualna kompilacja też nie przechodzi. –

+0

Nie jestem zbyt pewien, jakie są implikacje powyższych dwóch komentarzy. Postanowiłem nadać linii poleceń 'html2haml' strzał i wygląda na to, że działa dobrze. –

4

EDYCJA: html2haml działa tak jak w reklamie, jednak musisz użyć wersji uzyskanej z bieżącego oddziału master of haml github repoistory.

Wersja html2haml dołączona do klejnotu haml obecnie dostępna z rubygemów nie jest dobra. To jest wersja, którą otrzymasz, jeśli masz teraz wykonać gem install haml. Korzystanie z wersji dostarczonej z klejnotem spowoduje nieważne haml, ponieważ nie może poprawnie przetworzyć rubinu.

+1

Po prostu chciałem dodać, że od teraz (2011/7/21) działa html2haml z haml gem. Musisz jednak zainstalować 'gem install hpricot' i' gem install ruby_parser' na szczycie Haml. Jeśli spróbujesz wykonać konwersję erb-> haml, pojawi się monit o zainstalowanie tych klejnotów. –

1

html2haml jest teraz w gem html2haml, więc można użyć:

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

potrzebna jest odpowiedź obejmująca całą aplikację, a nie pojedyncze pliki. nikt nie chce wpisywać poszczególnych plików. to tylko jeden krok, aby zrobić to ręcznie. zadanie obejmujące całą aplikację będzie obsługiwać poszczególne pliki. – ahnbizcad

13

David Leung zapewnia this gem na github, który instaluje dwa zadania prowizji.

Dzięki erb2haml możesz z łatwością przekonwertować cały projekt z erb na haml przy pomocy rake haml:convert_erbs lub rake haml:replace_erbs.

1

Droga do gry tutaj, ale ten post wciąż leci wysoko w Google przy wyszukiwaniu podobnych rozwiązań.

Zainstalować html2haml gem, pop w katalogu app/views i spróbuj tego:

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 {} \; 

Usterka w tym rozwiązaniu jest to, że nie zachowuje historię zmian od starych plików .erb do twoje nowe pliki .haml. Ale czasami, gdy ta historia zmian w tych plikach widokowych nie jest wielka, to rozwiązanie dobrze mi służyło.

Pamiętaj też, aby sprawdzić, czy nie ma błędów w linii html2haml, zanim usuniesz stare pliki .erb.

8

bardzo prosty

w swojej Gemfile dodać

gem "erb2haml", :group => :development 

następnie uruchomić bundle install

fo R Konwersja *.erb do *.haml zachowując oryginalne pliki zrobić:

rake haml:convert_erbs 

do konwersji *.erb do *.haml zastępując oryginalne pliki zrobić:

rake haml:replace_erbs 

będzie to przeszukać wszystkie pliki w projekcie erb i konwertować do haml.

Dla skrót: Zastosowanie konwertera

http://www.htmltohaml.com

9

Na haml-rails git page on-line, daje komendę cli zrobić konwersję wszystkich erb do haml prawo w swoim projekcie.

dodać gem "haml-rails" do Gemfile

run: rake haml:erb2haml

+0

Tak proste i DROGOWE lepsze niż wciągnięcie innego klejnotu IMO. – labyrinth

Powiązane problemy