2009-02-06 17 views
69

Tôi tình cờ gặp phải HAML, một cách thú vị và đẹp để đánh dấu nội dung và viết mẫu cho HTML.Có triển khai HAML nào để sử dụng với Python và Django

Vì tôi sử dụng Python và Django cho nhu cầu phát triển web của mình, tôi muốn xem liệu có triển khai Python HAML hay một số khái niệm tương tự - không cần phải giống hệt nhau. công cụ mẫu.

Trả lời

21

Tôi muốn xem GHRML, Haml cho Genshi. Tác giả thừa nhận rằng về cơ bản nó là Haml cho Python và hầu hết cú pháp là giống nhau (và nó hoạt động trong Django). Dưới đây là một số GHRML chỉ để chỉ cho bạn cách chặt chẽ đó là:

%html 
    %head 
    %title Hello World 
    %style{'type': 'text/css'} 
     body { font-family: sans-serif; } 
    %script{'type': 'text/javascript', 'src': 'foo.js'} 

    %body 
    #header 
     %h1 Hello World 
    %ul.navigation 
     %li[for item in navigation] 
     %a{'href': item.href} $item.caption 

    #contents 
     Hello World! 
+2

Liên kết đó trả lại 404. Dự án không bị bỏ rơi phải không? –

+0

Ditto. Trang cũng trả về lỗi cho tôi. –

+1

Liên kết Borken, điều này có thể được cập nhật không? – arbales

4

này không thực sự trả lời câu hỏi của bạn, nhưng các thành phần CSS của HAML, SASS, có thể được sử dụng một cách tự do với khuôn khổ nào. Tôi đang sử dụng nó ngay bây giờ với Django.

+0

Sudhir bạn có thể cho tôi biết về cách bạn thiết lập điều này không? Quá trình cài đặt sử dụng "cài đặt gem", vì vậy tôi đoán bạn đã tải xuống mã nguồn và gian lận nó theo cách khác? CHI TIẾT xin vui lòng! =] –

+1

Khó mà phức tạp lắm ... Tôi đang sử dụng khung La bàn - nó đi kèm với chương trình xem tự động biên dịch tệp .scss thành tệp .css. Hãy xem http://compass-style.org/ –

36

Bạn có thể quan tâm SHPAML:

http://shpaml.com/

Tôi đang tích cực duy trì nó. Nó là một bộ tiền xử lý đơn giản, vì vậy nó không được gắn với bất kỳ công cụ nào khác như Genshi. Tôi tình cờ sử dụng nó với Django, do đó, có một chút hỗ trợ Django, nhưng nó không nên can thiệp với hầu hết các trường hợp sử dụng khác.

+4

SHPAML vẫn đang trong quá trình phát triển tích cực? Bạn dường như đã từ bỏ bảo trì và không nhiều đã xảy ra kể từ đó. Tôi đang cân nhắc việc sử dụng nó (không có phần còn lại của repo trang web) trên Github, nhưng tôi không hoàn toàn chắc chắn liệu đây có phải là một ý tưởng hay vì gói PyPI có vẻ vẫn còn xung quanh. –

+0

@Alan, một yêu cầu khác ở đây ... – rapadura

+0

Tôi cũng muốn biết. – zakdances

3

Tôi không chắc chắn trạng thái của bit GHRML vì gần đây tôi chỉ xem xét trạng thái đó. Không thể tìm thấy một repo cho nó, nhà phát triển ban đầu không có thời gian cho nó nữa và bảo trì đã được chọn bởi một người nào khác với một quan tâm đến dự án. Mọi thông tin bổ sung về điều này sẽ hữu ích.

Thật không may, như những điều này đi, tôi bắt đầu viết bộ xử lý HAML phong cách riêng của tôi;)

http://dasacc22.wordpress.com/2010/05/03/python-implementation-of-haml/

Đó là không có cách nào phù hợp để sử dụng sản xuất tại thời điểm này (theo nghĩa đen 4 ngày tuổi trẻ của nó bây giờ nhưng giống như 60 + giờ bị nhồi nhét trong 4 ngày đó) nhưng bất kỳ ai quan tâm đều có thể kiểm tra ở đây. Nó có một loạt các tính năng đã được cài đặt để làm cho nó trở nên hữu ích như một món đồ chơi, và khi tôi dọn sạch mã nguồn trong tuần tới, tôi hy vọng sẽ thấy nó thay thế tất cả các phần mở rộng XSLT/xpath tùy chỉnh và các mẫu của tôi.

18

Tôi đang tìm kiếm tương tự. Tôi đã không thử nó, nhưng thấy câu này:

http://github.com/jessemiller/HamlPy

+2

Điều này hoạt động tuyệt vời và cũng có người theo dõi giống như của SASS. Chắc chắn hoạt động nhiều hơn câu trả lời hàng đầu. – bcoughlan

+1

Dự án này hiện nay đã chết; không cam kết trong 2 năm, không hỗ trợ Python 3. Không biết làm thế nào repo/gói duy trì có thể bỏ quyền kiểm soát ... nhưng điều đó sẽ xảy ra. –

+0

@NickT Py3 hỗ trợ: hamlpy3 – Natacha

2

Dự án của Daniel Skinner (đã đề cập ở trên) dường như đã được đổi tên thành DMSL. Nó có vẻ rất mạnh mẽ, mô phỏng HAML nhưng cho phép bạn sử dụng các hàm python, lambdas, comprehensions vv trong cú pháp của nó: https://github.com/dasacc22/dmsl

+1

Trang Github DMSL (hoặc thực sự dasacc22) không còn tồn tại nữa. Bây giờ tại https://github.com/dskinner/dmsl –

3

Dự án của tôi, PyHAML, là một bộ tiền xử lý Mako cung cấp cho bạn cú pháp giống HAML. Một số của Ruby không dịch rất tốt cho Python, vì vậy có một số khác biệt, nhưng tinh thần là như nhau.

3

Tôi chạy qua ngọc bích làm một số công việc node.js và khi trở về Django đã tìm kiếm một cái gì đó tương tự. Tôi tìm thấy Pyjade và trong khi nó gần như chính xác những gì tôi đang tìm kiếm nó xử lý lỗi và gỡ lỗi khá kém trong Django.

+0

Điều này thật tuyệt vời. Nên là câu trả lời được chấp nhận. Vẫn đang trong giai đoạn phát triển tích cực tại thời điểm nhận xét này – Ben

6

Bạn có thể quan tâm đến Plim. Đó là một cổng trăn trưởng thành của Slim.

Các vấn đề liên quan