2012-05-30 20 views
15

Dosya içinde içerme veya makro eklerken jinja ile girintiyi korumanın herhangi bir yolu olup olmadığını merak ediyorum. Bir kod dosyası oluşturmak için jinja'yı kullanmak istiyorum. Bir örnek olacağınıJinja girintiyi veya makroda tutmayı sürdürüyor

Dosya: class.html

class MyClass: 
    def someOp(): 
     pass 

    {% include "someOp.html" %} 

Dosya: someOp.html

def someOp2(): 
    pass 

şablonun sonucu olmalıdır:

class MyClass: 
    def someOp(): 
     pass 

    def someOp2(): 
     pass 

Eğer orada herhangi jinja'yı, dahil edilen dosyadaki her satır için ekleme etiketinden önce girintiyi hazırlamanın yolu nedir? Ya da jinja'yı bunun için özelleştirmek için herhangi bir yolu var mı?

Varsayılan olarak
class MyClass: 
    def someOp(): 
     pass 

    {% macro someop() %}{% include "someOp.html" %}{% endmacro %} 
    {{ someop()|indent }} 

'girinti' girintiler 4 boşluk ve yapar:

+0

Bu, görmek istediğim bir şey. –

cevap

13

bir yolu Makro bir fonksiyonu olduğu için, daha sonra çıkış girinti filtreden geçirilebilir, bir makro dahil sarılmasıdır ilk satırı girmeyin, örneğin kullanabilirsiniz 'girinti (8)' daha fazla ayrıntı için bakınız, http://jinja.pocoo.org/docs/templates/#list-of-builtin-filters.

Eklemek istediğiniz makroyu kullanmaya başlamak için makro olarak tanımlanmışsa, daha fazla sarıcı makrosu gerekmez ve girintili filtreyi kullanarak düz olarak atlayabilirsiniz.

+16

Cevabınız için teşekkürler, neredeyse ihtiyaç duyduğum gibi görünüyor, ancak üzerinde bulunduğu çizginin girintiliğini kullanabiliyor muyum (seviyeyi açıkça belirtmek yerine)? – Razvi

İlgili konular