2016-03-03 16 views
12

Sto utilizzando curl per vedere l'output della mia app Web. Quando Flask e Jinja rendono i template, c'è un sacco di spazio bianco non necessario nell'output. Sembra essere aggiunto dal rendering di vari componenti da Flask-WTF e Flask-Bootstrap. Potrei spogliarlo usando sed, ma c'è un modo per controllare questo da Jinja?Rimuovere gli spazi bianchi non necessari dal modello reso Jinja

+0

correlati: http://stackoverflow.com/questions/5191147/spaceless-tag-for-jinja-templates – davidism

risposta

19

Jinja ha più modi per control whitespace. È non avere un modo per migliorare l'output, è necessario assicurarsi manualmente che tutto sembra "bello".

La soluzione più ampia è impostare trim_blocks e lstrip_blocks sull'ENV.

app.jinja_env.trim_blocks = True 
app.jinja_env.lstrip_blocks = True 

Se si desidera mantenere una nuova riga alla fine del file, impostare strip_trailing_newlines = False.

È possibile utilizzare i caratteri di controllo per modificare la modalità di funzionamento degli spazi bianchi attorno a un blocco. - rimuove sempre gli spazi bianchi, + lo conserva sempre, sovrascrivendo le impostazioni di env per quel blocco. Il personaggio può andare all'inizio o alla fine (o entrambi) di un blocco per controllare lo spazio bianco in quella direzione.

{%- if ... %} strips before 
{% if ... +%} preserves after 
{%+ if ... -%} preserves before and strips after 
remember that `{% endif %}` is treated separately 

Nota che i caratteri di controllo si applicano solo ai modelli si scrittura. Se includi un modello o utilizzi una macro da una terza parte, tuttavia hanno scritto che il modello si applicherà a quella parte.

+0

È '+' e '-' applicabile a tutti i tag? '{% endif +%}' mi sta dando 'atteso token' alla fine del blocco di istruzioni ', ottenuto' + '':( –

+0

Inoltre,' {% se True +%} 'mi dà' inaspettato 'fine del blocco di istruzioni' 'Forse jinja2 si è evoluto da allora? –

+0

Si prega di segnalare che come un bug con Jinja. – davidism

Problemi correlati