pacote slimish_jinja fornece modelos slim sintaxe para Jinja2.
Instalação
Eu serei o upload para PyPI breve. Até então, clonar o repositório. Exemplos de usá-lo como `extensão Jinja2 (jinja_demo.py)`, `com Flask (flask_demo.py)` e standalone` (convert.py e demo.py) `são empacotados.
Se você quiser usá-lo para qualquer outro fim, o `lexer - lexer.py` e` parser - parser.py` são bastante simples. `Lexer` lê a entrada por linhas e gera sinais. `Parser` implementa uma mão rolou analisador de ascendência recursiva.
Para referência rápida, este magro ::
& Nbsp; & nbsp; & nbsp; ! 5
& Nbsp; & nbsp; & nbsp; html
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cabeça
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Conteúdo estático inline.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; título
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; título -bloco
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Slimish-Jinja Exemplo
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Self fechar marca com atributos.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; meta name = "keywords" content = "linguagem de modelo"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; escrita
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Tag Jinja vazio.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; block roteiro
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / 'Id' e atalho "classe".
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; corpo # home.fluid.liquid
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Nested conteúdo estático.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; h1
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Este é o meu cabeçalho.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / 'Div' com 'id' e atalho "classe".
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Contents.main
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Tag html vazio.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % Div
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p = conteúdo dinâmico
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; | Nested dyanmic = conteúdo
Travessão Esquerda é preservado em blocos de texto.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; / Mistura de html é bom também.
& 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; / Atributos dinâmicos.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ul class = "= 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; user -para em usuários
& 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 -se
& 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 Nenhum usuário encontrado.
converte-se:
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Título bloco%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Slimish-Jinja Exemplo
& 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; Este é o meu cabeçalho.
& 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;
dinâmica {{content}}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Dyanmic Nested {{content}} & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Travessão Esquerda é preservado em blocos de texto.
& 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}}
- Nenhum usuário encontrado.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% For usuário em usuários%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% If 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; {% Acabar se%}
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; {% Else%}
& 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;
Requisitos :
- Python
Comentários não encontrado