krydsfiner er en skabelon sprog grammatik, der ser, føler, og fungerer som Python
belastning ('url')
belastning ('compress')
DOCTYPE (html)
html:
& Nbsp; head:
& Nbsp; meta (charset = "utf-8")
& Nbsp; meta (name = "viewport", content = "width = device-width, initial-skala = 1,0")
& Nbsp; title:
& Nbsp; hvis titel:
& Nbsp; # docstrings * er * frataget foregående mellemrum (de skal være
& Nbsp; # indrykket), og den første og sidste nylinje fjernes.
& Nbsp; "" "
& Nbsp; {title} |
& Nbsp; "" "# string intepolation er lidt mere tunge end` .format () `, men mere ens end forskellige.
& Nbsp; "Velkommen '# Strenglitteraler kræver citater: - / I * kunne * føje en anden måde at gøre dette ...
& Nbsp; komprimere ("css"):
& Nbsp; link (rel = "stylesheet", type = 'text / css ", href = statisk (" css / reset.css "))
& Nbsp; link (rel = "stylesheet", type = 'text / css ", href = statisk (" css / welcome.css "))
& Nbsp; script (src = "// ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", type = "text / javascript")
& Nbsp; komprimere ("js"):
& Nbsp; script (src = statisk ("JS / underscore.js"), type = "text / javascript")
& Nbsp; script (src = statisk ("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; link (rel = "stylesheet", type = 'text / css ", href = statisk (" css / ie.css «))
& Nbsp; blok (»extra_head) # blokke, og blokere arv? selvfølgelig!
& Nbsp; krop:
& Nbsp; div (class = "wrapper", id = "wrapper") # ingen kortform for klasse og id (endnu)
& Nbsp; header:
& Nbsp; blok ("header"):
& Nbsp; p (class = "logo"):
& Nbsp; blok (»header_title):
& Nbsp; hvis bruger:
& Nbsp; "Velkommen," {user.name} '
& Nbsp; andet:
& Nbsp; "Velkommen"
& Nbsp; hvis current_member:
& Nbsp; p (class = "login"):
& Nbsp; "Velkommen, {current_member.preferred_name}"
& Nbsp; a (href = url ("logout")): "Log ud"
& Nbsp; nav:
& Nbsp; ul:
& Nbsp; blok (»nav«):
& Nbsp; li: a (href = url ("login")): 'Login'
& Nbsp; sektion class = "brødkrumme":
& Nbsp; blok ("brødkrumme")
& Nbsp; sektion (class = "main"):
& Nbsp; blok (budskaber «):
& Nbsp; hvis meddelelser:
& Nbsp; ul (class = "meddelelser"):
& Nbsp; for besked i meddelelser:
& Nbsp; li (class = message.tags): '{message}'
& Nbsp; script:
& Nbsp; # kode litteraler, så kyndige redaktører kan farve kildekoden
& Nbsp; `` `javascript
& Nbsp; $ (document) .ready (function () {
& Nbsp; $ ("ul.messages") addClass ("animere.");
& Nbsp; var fade_out = _ (function () {
& Nbsp; this.addClass ("fade-out")
& Nbsp;.}) Binde ($ ("ul.messages"))
& Nbsp; setTimeout (fade_out, 5000);
& Nbsp;. $ ("Ul.messages") bind ("klik", fade_out);
& Nbsp;});
& Nbsp; `` `
& Nbsp; blok ("indhold")
& Nbsp; footer:
& Nbsp; # p:
& Nbsp; # 'Disse er kommentarer. "
& Nbsp; # span: '|'
& Nbsp; # '& copy; 2012 CrossFit'
INSTALLATION
& Nbsp; pip installere krydsfiner
& Nbsp; lags
SYNTAKS
Hver linje begynder med en erklæring, der enten kan være en funktion (div, blok) en bogstavelig (',' '') eller en kontrolgruppe erklæring (hvis ellers, for).
Funktioner bliver kaldt med argumenter og en "blok":
# argumenter ((), {}), blok er Block ()
p
# argumenter ((), {"klasse": "Divvy '}), blok er Block ()
div (class = "divvy")
# argumenter ((autofokus), {»id«: »bio«}), blok er Block (Literal (»Dette er min bio«),)
textarea (autofokus, id = "bio"): "Dette er min bio«
Selv om der ikke er nogen "blok", får du i det mindste ved tomme blok objekt, som du kan ringe block.render på. Det vil være "falsey", selv om, så du kan tjekke for eksistensen af en blok. Den mindste "truthy" blok er en tom streng. Det betyder div '' vil give dig en "truthy" blok, men div vil være en "falsey" blok.
Du kan udvide crap ud af krydsfiner, fordi div, hvis blok, det hele, er alle skrevet som krydsfiner extensions. Uden Den indbyggede udvidelser, kunne sproget faktisk ikke gøre noget, fordi det er på sin kerne blot et sprog grammatik.
HVORFOR!?!?
Jeg tror, der er plads til andet templating sprog.
Haml? Coffekup? Jade? De synes ikke pythonic for mig.
Plain-Jane HTML? Sikker på, hvis du vil. Det vil sige, jeg tror, det bedste alternativ til krydsfiner.
Selv den store django skabelon sprog er HTML gjort grovere ved at indsætte ekstra markup. Jeg kiggede på Jade og Haml som "yeah, du får der", men de havde ikke nagle det.
Jeg er unapologettically en DIY-er. Jeg tror, at nogle gange hjul bare brug genopfinder! Plus, det gav mig en chance for at spille med sproglige grammatikker, som jeg synes er sjovt. Jeg bruger Modgrammar
Krav :
- Python
Kommentarer ikke fundet