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
cevap
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ı.
'+' ve '-' uygulanabilir tüm etiketlere mı? '{% endif +%}' bana beklenen ifadeyi 'ifade bloğu sonu' veriyor, '+' aldım :(( –
Ayrıca, '{% if True +%}' '' beklenmedik 'ifade bloğu sonu' veriyor Belki jinja2 o zamandan beri evrimleşmiş midir? –
Lütfen, Jinja ile ilgili bir hata olarak rapor edin – davidism
related: http://stackoverflow.com/questions/5191147/spaceless-tag-for-jinja-templates – davidism