pachet slimish_jinja oferă șabloane Slim sintaxă pentru Jinja2.
Instalare
Eu voi fi o încărcarea la PyPi în curând. Până atunci, clona magazia. Exemple de folosindu-l ca `extensie Jinja2 (jinja_demo.py)`, cu `Flask (flask_demo.py)` și standalone` (convert.py și demo.py) `sunt incluse.
Dacă doriți să-l utilizați pentru orice alt scop, `lexer - lexer.py` și` parser - parser.py` sunt destul de simple. `Lexer` citește de intrare prin linii și generează jetoane. `Parser` pune în aplicare un rulate recursiv parser coborâre.
Pentru referință rapid, aceasta subțire ::
& Nbsp; & nbsp; & nbsp; ! 5
& Nbsp; & nbsp; & nbsp; html
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cap
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Conținut static Inline.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; titlu
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; titlu -bloc
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Slimish-Jinja Exemplul
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Auto închidere tag-ul cu atribute.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; meta name = "keywords" content = "limbaj șablon"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; scenariu
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Tag Jinja gol.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; block script
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / "Id" și de acces rapid "de clasă".
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; corp # home.fluid.liquid
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Imbricate conținut static.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; h1
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Acesta este în afara mea.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / "Div" cu "id" și de acces rapid "de clasă".
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Contents.main
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Tag html gol.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Div
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p dinamic = conținut
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Imbricate dinamic în = conținut
Liniuța stânga este păstrat în blocuri de text.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Amestecare html este bine, de asemenea.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | ThoughtNirvana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Atribute dinamice.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; clasă ul = "= user_class"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Tag Jinja.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; utilizator -pentru utilizatorii
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.name
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; user.last_name -daca
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.last_name
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; user.middle_name -elif
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; li = user.middle_name
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; -else
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Li nr utilizator găsit.
convertește la:
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Title bloc%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Slimish-Jinja Exemplul
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Endblock%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Acesta este în afara mea.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
dinamică {{conținut}}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Dinamic în imbricate {{conținut}} & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Liniuța stânga este păstrat în blocuri de text.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ThoughtNirvana
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
- {{user.name}}
- {{user.last_name}}
- {{user.middle_name}}
- Nu utilizator găsit.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Pentru utilizator în utilizatorii%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Dacă user.last_name%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Elif user.middle_name%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Endif%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Mai%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Endfor%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;