plywood

Software screenshot:
plywood
Dettagli del software:
Versione: 1.6.3
Data di caricamento: 20 Feb 15
Sviluppatore: Colin Thomas-Arnold
Licenza: Libero
Popolarità: 64

Rating: 3.5/5 (Total Votes: 2)

compensato è una grammatica della lingua modello che guarda, si sente, e funziona come Python
load ('url')
load ('compress')
DOCTYPE ('html')
html:
& Nbsp; la testa:
& Nbsp; meta (charset = "utf-8")
& Nbsp; meta (name = "viewport", content = "width = dispositivo-width; iniziale scala = 1,0")
& Nbsp; titolo:
& Nbsp; se il titolo:
& Nbsp; # docstrings * * sono spogliato della precedente spazi (devono essere
& Nbsp; # rientrato), e il primo e l'ultimo ritorno a capo viene rimosso.
& Nbsp; "" "
& Nbsp; {title} |
& Nbsp; "" "# stringa intepolation è un po 'più pesante rispetto` .format () `, ma più simili di diverso.
& Nbsp; 'Benvenuti' # stringhe letterali richiedono citazioni: - / I * potrebbe * aggiungere un altro modo per fare questo ...
& Nbsp; comprimere ('css'):
& Nbsp; collegamento (rel = 'stylesheet', type = "text / css ', href = static (' css / reset.css '))
& Nbsp; collegamento (rel = 'stylesheet', type = "text / css ', href = static (' css / welcome.css '))
& Nbsp; di script (src = "// ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", type = "text / javascript")
& Nbsp; comprimere ('js'):
& Nbsp; di script (src = static ("JS / underscore.js"), type = "text / javascript")
& Nbsp; di script (src = static ("JS / backbone.js"), type = "text / javascript")
& Nbsp; IEIF 'lt IE 9':
& Nbsp; di script (src = "// html5shiv.googlecode.com/svn/trunk/html5.js", type = "text / javascript")
& Nbsp; collegamento (rel = 'stylesheet', type = "text / css ', href = static (' css / ie.css '))
& Nbsp; blocco ('extra_head') # blocchi, e il blocco eredità? certo!
& Nbsp; del corpo:
& Nbsp; div (class = "wrapper", id = "wrapper") # no scorciatoia per class e id (ancora)
& Nbsp; intestazione:
& Nbsp; block ('colpo di testa'):
& Nbsp; p (class = "logo"):
& Nbsp; blocco ('header_title'):
& Nbsp; se l'utente:
& Nbsp; 'Welcome', {} user.name '
& Nbsp; il resto:
& Nbsp; 'Welcome'
& Nbsp; se current_member:
& Nbsp; p (class = "login"):
& Nbsp; "Welcome, {} current_member.preferred_name"
& Nbsp; un (href = url ("logout")): 'Log Out'
& Nbsp; nav:
& Nbsp; ul:
& Nbsp; blocco ('nav'):
& Nbsp; li: un (href = url ("login")): 'Login'
& Nbsp; class section = "breadcrumb":
& Nbsp; blocco ('breadcrumb')
& Nbsp; sezione (class = "principale"):
& Nbsp; blocco ("messaggi"):
& Nbsp; se i messaggi:
& Nbsp; ul (class = "messaggi"):
& Nbsp; per il messaggio nei messaggi:
& Nbsp; li (class = message.tags): '{messaggio}'
& Nbsp; script:
& Nbsp; letterali # codice, in modo che i redattori esperti possono colorare il codice sorgente
& Nbsp; `` `javascript
& Nbsp; $ (document) .ready (function () {
& Nbsp; $ ("ul.messages") addClass ("animano").;
& Nbsp; var fade_out = _ (function () {
& Nbsp; this.addClass ("fade-out")
& Nbsp;.}) Lega ($ ("ul.messages"))
& Nbsp; setTimeout (fade_out, 5000);
& Nbsp;. $ ("Ul.messages") Bind ("click", fade_out);
& Nbsp;});
& Nbsp; `` `
& Nbsp; blocco ('content')
& Nbsp; footer:
& Nbsp; # p:
& Nbsp; # 'Questi sono i commenti.'
& Nbsp; # arco: '|'
& Nbsp; # '& copy; 2012 CrossFit'
Installazione
& Nbsp; pip install compensato
& Nbsp; ply out.html
SYNTAX
Ogni riga inizia con una dichiarazione, che può essere sia una funzione (div, blocco) un letterale (',' ''), o una dichiarazione di controllo (se, altrimenti, per).
Funzioni vengono chiamati con gli argomenti e un "blocco":
# argomenti sono ((), {}), blocco è Block ()
p
# argomenti sono ((), {'class': 'divvy'}), blocco è Block ()
div (class = "spartire")
# argomenti sono (('autofocus'), {'id': 'bio'}), blocco è Block (letterale ('Questo è il mio bio'),)
textarea (autofocus, id = "bio"): 'Questo è il mio bio'
Anche se non c'è un "blocco", si otterrà lo meno a oggetto blocco vuoto che è possibile chiamare block.render on. Sarà "Falsey", però, in modo da poter verificare l'esistenza di un blocco. Il blocco minima "truthy" è una stringa vuota. Questo significa div '' vi darà un blocco "truthy", ma div sarà un blocco "Falsey".
È possibile estendere la merda di compensato, perché div, se, blocco, l'intero lotto, sono tutti scritti come estensioni di compensato. Senza le estensioni builtin, la lingua non potrebbe effettivamente fare nulla, perché è al suo interno solo una grammatica della lingua.
WHY!?!?
Penso che ci sia spazio per un altro linguaggio di templating.
Haml? Coffekup? Jade? Non sembrano pythonic a me.
Plain Jane-HTML? Certo, se si vuole. Cioè, credo, la migliore alternativa per compensato.
Anche il grande linguaggio dei template HTML django è reso più cattivo inserendo markup aggiuntivo. Ho guardato Jade e Haml come "sì, si sta arrivando", ma non hanno inchiodarlo.
Sono unapologettically un DIY-er. Credo che a volte le ruote solo bisogno re-inventare! In più, questo mi ha dato la possibilità di giocare con le grammatiche della lingua, che mi sembrano divertenti. Sto utilizzando Modgrammar

Requisiti :

  • Python

Programmi simili

Altri software di sviluppo Colin Thomas-Arnold

StrangeCase
StrangeCase

20 Feb 15

punt
punt

20 Feb 15

chomsky
chomsky

20 Feb 15

Commenti a plywood

I commenti non trovato
Aggiungi commento
Accendere le immagini!