2012-05-30 2 views
15

파일 안에 포함 또는 매크로를 추가 할 때 진자에 들여 쓰기를 유지할 수있는 방법이 있는지 궁금합니다. jinja를 사용하여 코드 파일을 생성하고 싶습니다. 예로들 수진자가 포함 또는 매크로에 들여 쓰기 유지

파일 : class.html

class MyClass: 
    def someOp(): 
     pass 

    {% include "someOp.html" %} 

파일 : someOp.html

def someOp2(): 
    pass 

템플릿의 결과는 다음과 같아야합니다

class MyClass: 
    def someOp(): 
     pass 

    def someOp2(): 
     pass 

하는 경우가있는 진자가 포함 된 파일의 각 행에 대해 include 태그 앞에 들여 쓰기를 추가하는 방법은 무엇입니까? 또는 진자를 사용자 정의 할 수있는 방법이 있습니까?

기본적
class MyClass: 
    def someOp(): 
     pass 

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

'오목 부'만입 4 개 공간과 않는다 :

+0

이것은 내가보고 싶은 것입니다. –

답변

13

한가지 방법은 매크로 함수이기 때문에 그 후, 그 출력은 오목 필터를 통과 할 수는 매크로에 포함 감싸 인 첫 줄을 들여 쓰지 말고, 예를 들어 '들여 쓰기 (8)'를 더 들여 쓰려면, 자세한 내용은 http://jinja.pocoo.org/docs/templates/#list-of-builtin-filters을 참조하십시오.

포함 할 매크로가 다음으로 시작하는 매크로로 정의 된 경우 추가 래퍼 매크로가 필요하지 않으므로 들여 쓰기 필터를 사용하여 바로 이동할 수 있습니다.

+16

답변 주셔서 감사합니다, 내가 뭘 좋아하는 것 같아요,하지만 그것을 (수준을 명시 적으로 명시하는 대신)에있는 줄의 들여 쓰기 수준을 사용할 수 있습니까? – Razvi

관련 문제