faner, görünür hiss ki, bir şablon dili qrammatika və Python kimi çalışır
yük (url)
yük (kompres)
doctype (html)
html:
& Nbsp; rəhbəri:
& Nbsp; meta (charset = "utf-8")
& Nbsp; meta (name = "viewport'un" content = "width = cihaz-width; ilkin miqyaslı = 1.0")
& Nbsp; adı:
& Nbsp; adı əgər:
& Nbsp; # docstrings * ağ əvvəlki lüt edilir * (onlar olmalıdır
& Nbsp; # indented) və ilk və son newline çıxarılır.
& Nbsp; "" "
& Nbsp; {title} |
& Nbsp; "" "# string intepolation müxtəlif çox ()`, lakin daha çox oxşar .format `bir az daha ağır deyil.
& Nbsp; 'Xoş gəldin' # string literator quotes tələb edir: - / I * yenilməz * bunu başqa bir yol əlavə ...
& Nbsp; (css) kompres:
& Nbsp; link (rel = 'stil "tipli =' text / css" href = statik (css / reset.css))
& Nbsp; link (rel = 'stil "tipli =' text / css" href = statik (css / welcome.css))
& Nbsp; script (src = "// ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type = "text / javascript")
& Nbsp; (js) kompres:
& Nbsp; script (src = statik ("js / underscore.js"), type = "text / javascript")
& Nbsp; script (src = statik ("js / backbone.js"), type = "text / javascript")
& Nbsp; ieif 'IE 9 lt:
& Nbsp; script (src = "// html5shiv.googlecode.com/svn/trunk/html5.js" type = "text / javascript")
& Nbsp; link (rel = 'stil "tipli =' text / css" href = statik (css / ie.css))
& Nbsp; məhəllə (extra_head) # blokları, və blok miras? əlbəttə!
& Nbsp; orqanı:
& Nbsp; div (class = "banderol", id = "banderol") # (hələ) sinif və id üçün stenoqrafiya
& Nbsp; header:
& Nbsp; məhəllə (header):
& Nbsp; p (class = "logo")
& Nbsp; məhəllə (header_title):
& Nbsp; istifadəçi əgər:
& Nbsp; 'xoş gəlmisiniz' {user.name} '
& Nbsp; başqa:
& Nbsp; 'Xoş gəldin'
& Nbsp; current_member əgər:
& Nbsp; p (class = "giriş"):
& Nbsp; "Salam, {current_member.preferred_name}"
& Nbsp; a (href = url () "çıxış"): "Çıx '
& Nbsp; nav:
& Nbsp; ul:
& Nbsp; məhəllə (nav):
& Nbsp; li: a (href = url ("giriş")): "Login"
& Nbsp; bölmə class = "hier"
& Nbsp; məhəllə (hier)
& Nbsp; bölmə (class = "əsas")
& Nbsp; məhəllə ('messages'):
& Nbsp; mesajları əgər:
& Nbsp; ul (class = "mesajları"):
& Nbsp; mesajları mesaj üçün:
& Nbsp; li (class = message.tags): '{mesaj}'
& Nbsp; script:
& Nbsp; # kodu literator, fərasət redaktorları kodunu rəng bilərsiniz, belə ki,
& Nbsp; `` `javascript
& Nbsp; $ (sənəd) Hazır (function () {
& Nbsp; $ ("ul.messages") addClass ("canlı").
& Nbsp; var fade_out = _ (function () {
& Nbsp; this.addClass ("fade-out")
& Nbsp;.}) Lər ($ ("ul.messages"))
& Nbsp; setTimeout (fade_out, 5000);
& Nbsp;. $ ("Ul.messages") (fade_out "klik") bağladığı;
& Nbsp;});
& Nbsp; `` `
& Nbsp; məhəllə (məzmun)
& Nbsp; footer:
& Nbsp; # p:
& Nbsp; # 'Bu şərhlər var.
& Nbsp; # span: '|'
& Nbsp; # 'və surəti; 2012 CrossFit "
INSTALLATION
& Nbsp; plywood yüklemek pip
& Nbsp; katlı
Sözdizimi
Hər bir sətir bir funksiyası (div, blok) ola bilər şərhdə, ilə başlayan bir hərfi (',' '), və ya (əgər başqa, üçün) nəzarət bəyanat.
Funksiyaları dəlilləri və "bloku" ilə adlı almaq:
# Dəlilləri) ((() {}), blok Block edir
p
# Dəlilləri var (() {'class': 'bölmek "}), məhəllə Block edir ()
div (class = "bölmek")
# Arqumentləri var ((Avtomatik), {'id': 'bio "}), məhəllə Block (hərfi (Bu mənim bio deyil), deyil)
textarea (Avtomatik, id = "bio"): "Bu mənim bio deyil '
Heç bir "blok" olsa belə, siz block.render zəng edə bilərsiniz boş blok obyekt ən azı almaq lazımdır. Bu baxmayaraq, "falsey" olacaq, belə ki, bir blok olması üçün kontrol edə bilərsiniz. minimum "truthy" bloku boş simli edir. Bu, bir "truthy" blok verəcək div '' deməkdir, lakin div bir "falsey" bloku olacaq.
Div, blok, əgər, bütün çox, bütün plywood uzantıları kimi yazılmışdır, çünki Siz plywood crap həyata uzada bilər. Onun əsas yalnız bir dil qrammatika, çünki builtin uzantıları olmadan, dil, həqiqətən, heç bir şey edə bilmədim.
NİYƏ!?!?
Mən bir layoutuna dili otaq var.
Haml? Coffekup? Jade? Onlar mənə Pythonic görünmür.
Plain-Jane HTML? Əlbəttə, əgər siz. Bu, hesab edirəm ki, plywood üçün ən yaxşı alternativ deyil.
Hətta böyük Django şablon dil HTML əlavə biçimlendirme soxaraq nastier etdi. Mən "Bəli, orada alırıq" kimi Jade və Haml baxdı, lakin onlar bunu dırnaq etmədi.
Mən unapologettically bir DIY-er edirəm. Mən bəzən təkərlər yalnız yenidən keşfetmeye lazımdır ki, edirəm! Plus, bu mənə fun hesab dil qrammatikasına ilə oynamaq üçün şans verdi.
- Python I
tələblər Modgrammar kullanıyorum
Şərhlər tapılmadı