ván ép là một ngữ pháp ngôn ngữ mẫu trông, cảm thấy, và hoạt động như Python
tải ('url')
tải ('nén')
DOCTYPE ('html')
html:
& Nbsp; đầu:
& Nbsp; meta (charset = "utf-8")
& Nbsp; meta (name = "khung nhìn", nội dung = "width = device-width; ban đầu quy mô = 1.0")
& Nbsp; tiêu đề:
& Nbsp; nếu tiêu đề:
& Nbsp; # docstrings * được * tước trước khoảng trắng (họ phải
& Nbsp; # thụt vào), và xuống dòng đầu tiên và cuối cùng được lấy ra.
& Nbsp; "" "
& Nbsp; {title} |
& Nbsp; "" "# string intepolation là nhiều hơn một chút nặng hơn` .format () `, nhưng nhiều hơn so với giống khác nhau.
& Nbsp; "welcome" # string literals yêu cầu báo giá: - / I * sức * thêm một cách khác để làm điều này ...
& Nbsp; nén ('css'):
& Nbsp; liên kết (rel = 'kiểu', type = 'text / css ", href = tĩnh (' css / reset.css '))
& Nbsp; liên kết (rel = 'kiểu', type = 'text / css ", href = tĩnh (' css / welcome.css '))
& Nbsp; script (src = "// ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", type = "text / javascript")
& Nbsp; nén ('js'):
& Nbsp; script (src = tĩnh ("js / underscore.js"), type = "text / javascript")
& Nbsp; script (src = tĩnh ("js / backbone.js"), type = "text / javascript")
& Nbsp; ieif 'lt IE 9':
& Nbsp; script (src = "// html5shiv.googlecode.com/svn/trunk/html5.js", type = "text / javascript")
& Nbsp; liên kết (rel = 'kiểu', type = 'text / css ", href = tĩnh (' css / ie.css '))
& Nbsp; khối ('extra_head') # khối và khối thừa kế? tất nhiên!
& Nbsp; cơ thể:
& Nbsp; div (class = "wrapper", id = "wrapper") # no viết tắt cho class và id (chưa)
& Nbsp; tiêu đề:
& Nbsp; khối ('header'):
& Nbsp; p (class = "logo"):
& Nbsp; khối ('header_title'):
& Nbsp; nếu người sử dụng:
& Nbsp; 'Welcome,' {} user.name '
& Nbsp; khác:
& Nbsp; "welcome"
& Nbsp; nếu current_member:
& Nbsp; p (class = "đăng nhập"):
& Nbsp; "Chào mừng bạn, {} current_member.preferred_name"
& Nbsp; một (href = url ("logout")): 'Thoát'
& Nbsp; nav:
& Nbsp; ul:
& Nbsp; khối ('nav'):
& Nbsp; li: a (href = url ("đăng nhập")): 'Login'
& Nbsp; phần class = "breadcrumb":
& Nbsp; khối ('breadcrumb')
& Nbsp; phần (class = "chính"):
& Nbsp; khối ('thông điệp'):
& Nbsp; nếu thông điệp:
& Nbsp; ul (class = "thông điệp"):
& Nbsp; cho tin nhắn trong thông điệp:
& Nbsp; li (class = message.tags): '{} nhắn'
& Nbsp; script:
& Nbsp; literals # mã, vì vậy mà các biên tập hiểu biết có thể tô màu mã nguồn
& Nbsp; `` `javascript
& Nbsp; $ (document) .ready (function () {
& Nbsp; $ ("ul.messages") addClass ("sinh động").
& Nbsp; var fade_out = _ (function () {
& Nbsp; this.addClass ("fade-out")
& Nbsp;.}) Ràng buộc ($ ("ul.messages"))
& Nbsp; setTimeout (fade_out, 5000);
& Nbsp;. $ ("Ul.messages") nối kết ("click", fade_out);
& Nbsp;});
& Nbsp; `` `
& Nbsp; khối ('nội dung')
& Nbsp; footer:
& Nbsp; # p:
& Nbsp; # 'Đây là những ý kiến. "
& Nbsp; # gian tồn tại: '|'
& Nbsp; # '& copy; 2012 CrossFit'
LẮP
& Nbsp; pip cài đặt ván ép
& Nbsp; ply
CÚ PHÁP
Mỗi dòng bắt đầu với một tuyên bố, đó có thể là một chức năng (div, block) một chữ (',' ''), hoặc một báo cáo kiểm soát (nếu khác, cho).
Chức năng được gọi với đối số và một "khối":
# Đối số ((), {}), khối là Block ()
p
# Đối số ((), {'lớp': 'sư đoàn'}), khối là Block ()
div (class = "sư đoàn")
# Đối số (('autofocus), {' id ':' sinh học '}), khối là Block (Literal (' Đây là sinh học của tôi "),)
textarea (tự động lấy nét, id = "bio"): "Đây là sinh học của tôi '
Thậm chí nếu không có "khối", bạn sẽ nhận được ít nhất tại đối tượng khối trống mà bạn có thể gọi block.render trên. Nó sẽ được "falsey", mặc dù, vì vậy bạn có thể kiểm tra sự tồn tại của một khối. Các block "truthy" tối thiểu là một chuỗi rỗng. Điều đó có nghĩa div '' sẽ cung cấp cho bạn một khối "truthy", nhưng div sẽ là một khối "falsey".
Bạn có thể mở rộng các crap ra khỏi ván ép, vì div, nếu, khối, toàn bộ rất nhiều, tất cả đều được viết như là phần mở rộng ván ép. Nếu không có phần mở rộng dựng sẵn, ngôn ngữ có thể không thực sự làm bất cứ điều gì, bởi vì nó là cốt lõi của nó chỉ là một ngữ pháp ngôn ngữ.
TẠI SAO!?!?
Tôi nghĩ rằng có chỗ cho một ngôn ngữ khác templating.
Haml? Coffekup? Jade? Họ dường như không pythonic với tôi.
Plain-Jane HTML? Chắc chắn, nếu bạn muốn. Đó là, tôi nghĩ rằng, sự thay thế tốt nhất để ván ép.
Ngay cả các ngôn ngữ tuyệt vời django mẫu là HTML đã nastier bằng cách chèn đánh dấu bổ sung. Tôi nhìn Jade và Haml như "yeah, bạn đang nhận được ở đó", nhưng họ không móng tay nó.
Tôi unapologettically một DIY-er. Tôi nghĩ rằng đôi khi bánh xe chỉ cần tái phát minh! Thêm vào đó, điều này đã cho tôi một cơ hội để chơi với ngữ pháp ngôn ngữ, mà tôi nghĩ là vui vẻ. Tôi đang sử dụng Modgrammar
Yêu cầu :
- Python
Bình luận không