2016-03-03 13 views
12

gereksiz boşluk çıkarın. Flask ve Jinja şablonları oluşturduğunda, çıktıda çok fazla gereksiz boş alan var. Flask-WTF ve Flask-Bootstrap'tan çeşitli bileşenler ekleyerek eklenecek gibi görünüyor. Bunu sed kullanarak açabilirim ama bunu Jinja'dan kontrol etmenin bir yolu var mı?Benim web uygulaması çıktısını izlemek için <code>curl</code> kullanıyorum Jinja render şablondan

+0

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

cevap

19

Jinja control whitespace için birden fazla yol vardır. Bu çıktıyı güzelleştirmek için bir yolu yok, el ile her şeyin "güzel" görünüyor emin olmak zorunda.

geniş çözelti env ile trim_blocks ve lstrip_blocks ayarlamaktır.

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

dosyanın sonunda bir yeni satır tutmak istiyorsanız

, strip_trailing_newlines = False ayarlayın.

Sen değiştirmek için denetim karakterleri nasıl kullanabileceğinizi bir blok eserler etrafında boşluk. - her zaman boşlukları kaldırır, + her zaman korur, bu bloğun env ayarlarını geçersiz kılar. Karakter, bu yöndeki boşlukları kontrol etmek için bir bloğun başlangıcına veya sonuna (veya her ikisine) gidebilir. kontrol karakterleri sadece Eğer yazma şablonları için de geçerli olduğunu

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

Not. Bir şablon eklerseniz veya 3. taraftaki bir makroyu kullanırsanız, ancak şablonun o kısma uygulanacağını yazdı.

+0

'+' ve '-' uygulanabilir tüm etiketlere mı? '{% endif +%}' bana beklenen ifadeyi 'ifade bloğu sonu' veriyor, '+' aldım :(( –

+0

Ayrıca, '{% if True +%}' '' beklenmedik 'ifade bloğu sonu' veriyor Belki jinja2 o zamandan beri evrimleşmiş midir? –

+0

Lütfen, Jinja ile ilgili bir hata olarak rapor edin – davidism