2010-02-11 8 views
44

Tôi có dự án đường ray, chế độ xem chỉ bao gồm các tệp HTML.ERB, ứng dụng khách của tôi muốn chuyển đổi ERB thành HAML. Tôi có quá nhiều lượt xem tệp. Mất rất nhiều thời gian để chuyển đổi tệp theo tệp. Vì vậy, mà chỉ đơn giản là cách tôi có thể chuyển đổi HTML để haml? Tôi đã cài đặt plugin haml trong dự án của mình.Chuyển đổi html.erb hiện tại thành Haml

Trả lời

26
+0

nếu tôi có thẻ hình ảnh html

+12

Đây không phải là câu trả lời 'xấu', nhưng nó không được chấp nhận là câu trả lời hay nhất. Công cụ dòng lệnh (bên dưới) là tốt hơn. –

+1

Vui lòng đọc bài đăng, anh ấy nói anh ấy không muốn chuyển đổi từng tệp riêng lẻ. – JackHasaKeyboard

96

Bạn có thể sử dụng từ dòng lệnh html2haml

html2haml your_erb_file new_haml_file 

Nếu bạn muốn chuyển đổi tất cả các file của bạn trong một đi, nhìn vào bài viết này: http://shifteleven.com/articles/2008/06/08/converting-erb-to-haml-snippet

+3

Theo [mã nguồn html2haml mới nhất] (https://github.com/haml/html2haml), html2haml "đang trong quá trình được trích xuất từ ​​đá quý haml." –

+2

bây giờ là [gem riêng biệt] (https://github.com/haml/html2haml). có vẻ như bản dựng hiện tại cũng không đi qua. –

+0

Tôi không chắc chắn về ý nghĩa của hai ý kiến ​​trên. Tôi quyết định cung cấp cho dòng lệnh 'html2haml' một shot và nó có vẻ hoạt động tốt. –

4

EDIT: html2haml không hoạt động như được quảng cáo, tuy nhiên bạn phải sử dụng phiên bản thu được từ nhánh chính hiện tại của haml github repoistory.

Phiên bản html2haml đi kèm với đá quý haml hiện có sẵn từ rubygems là không tốt. Đây là phiên bản bạn sẽ nhận được nếu bạn đã làm gem install haml ngay bây giờ. Sử dụng phiên bản được cung cấp kèm với đá quý sẽ dẫn đến haml không hợp lệ, vì nó không thể xử lý ruby ​​đúng cách.

+1

Chỉ muốn thêm vào thời điểm hiện tại (2011/7/21), công cụ html2haml của gemll hoạt động. Tuy nhiên, bạn phải 'gem install hpricot' và' gem install ruby_parser' trên đầu trang của haml. Nếu bạn cố gắng thực hiện chuyển đổi erb-> haml, nó sẽ nhắc bạn cài đặt những viên đá quý này. –

1

html2haml hiện đang trong đá quý html2haml, vì vậy bạn có thể sử dụng:

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

câu trả lời của ứng dụng là những gì cần thiết, chứ không phải các tệp riêng lẻ. không ai muốn loại bỏ các tệp riêng lẻ. nó chỉ có một bước ở trên làm nó bằng tay. một tác vụ trên toàn ứng dụng sẽ xử lý các tệp riêng lẻ. – ahnbizcad

13

David Leung cung cấp this gem trên github rằng cài đặt hai nhiệm vụ cào.

Với erb2haml, bạn có thể dễ dàng chuyển đổi toàn bộ dự án từ erb sang haml bằng rake haml:convert_erbs hoặc rake haml:replace_erbs.

1

Cách đến cuối trò chơi ở đây, nhưng bài đăng này vẫn bay cao trong Google khi tìm kiếm các giải pháp tương tự.

Cài đặt html2haml đá quý, pop vào app/views thư mục của bạn và cung cấp cho một thử này:

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

Các lỗ hổng trong giải pháp này là nó không giữ lại lịch sử sửa đổi từ file .erb cũ sang các tệp .haml mới của bạn. Nhưng vào những thời điểm mà lịch sử sửa đổi của các tệp xem đó không phải là vấn đề lớn, giải pháp này đã phục vụ tôi khá tốt.

Ngoài ra, hãy nhớ xem mọi lỗi trong dòng html2haml trước khi bạn xóa các tệp .erb cũ.

8

rất đơn giản

trong bạn Gemfile thêm

gem "erb2haml", :group => :development 

sau đó chạy bundle install

fo r Chuyển đổi *.erb để *.haml giữ file gốc làm:

rake haml:convert_erbs 

cho chuyển đổi *.erb để *.haml thay thế file gốc làm:

rake haml:replace_erbs 

nó sẽ tìm kiếm tất cả các erb tập tin trong dự án và chuyển đổi sang haml.

Đối viết tắt: sử dụng trên dòng chuyển đổi

http://www.htmltohaml.com

9

Trên haml-rails git page, nó cung cấp các lệnh cli để làm chuyển đổi tất cả ERB để Haml ngay trong dự án của bạn.

thêm gem "haml-rails" để Gemfile bạn

chạy: rake haml:erb2haml

+0

Vì vậy, dễ dàng, và WAY tốt hơn so với kéo trong một đá quý IMO. – labyrinth