2012-05-30 11 views
15

पर इंडेंटेशन रखें, मुझे आश्चर्य है कि फ़ाइल के अंदर शामिल या मैक्रो जोड़ते समय जिन्जा के साथ इंडेंटेशन रखने का कोई तरीका है या नहीं। मैं कोड फ़ाइल उत्पन्न करने के लिए जिन्जा का उपयोग करना चाहता हूं। एक उदाहरणजिनजा में शामिल हैं या मैक्रो

फ़ाइल: class.html

class MyClass: 
    def someOp(): 
     pass 

    {% include "someOp.html" %} 

फ़ाइल: someOp.html

def someOp2(): 
    pass 

टेम्पलेट का परिणाम होना चाहिए:

class MyClass: 
    def someOp(): 
     pass 

    def someOp2(): 
     pass 

अगर कोई जिन्जा को शामिल फ़ाइल में प्रत्येक पंक्ति के लिए टैग शामिल करने से पहले इंडेंट को इंडेंट प्रीपेड करने का तरीका? या ऐसा करने के लिए जिन्जा को अनुकूलित करने का कोई तरीका है?

class MyClass: 
    def someOp(): 
     pass 

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

डिफ़ॉल्ट रूप से 'मांगपत्र' इंडेंट 4 स्थानों और करता है:

+0

यह ऐसा कुछ है जिसे मैं देखना चाहूंगा। –

उत्तर

13

एक तरह से रैप करने के लिए The, एक मैक्रो में शामिल तो क्योंकि मैक्रो एक समारोह है, इसके उत्पादन मांगपत्र फिल्टर के माध्यम से पारित किया जा सकता है पहली पंक्ति इंडेंट नहीं, आप उदाहरण का उपयोग कर सकते हैं इंडेंट (8) 'आगे इंडेंट करने के लिए, अधिक जानकारी के लिए http://jinja.pocoo.org/docs/templates/#list-of-builtin-filters देखें।

यदि आप जो भी शामिल कर रहे हैं उसे शुरू करने के लिए एक मैक्रो के रूप में परिभाषित किया गया है तो आगे रैपर मैक्रो की आवश्यकता नहीं है, और आप सीधे इंडेंट फ़िल्टर का उपयोग करने के लिए कूद सकते हैं।

+16

उत्तर के लिए धन्यवाद, ऐसा लगता है कि मुझे लगभग क्या चाहिए, लेकिन क्या मैं इसे उस लाइन के इंडेंट स्तर का उपयोग कर सकता हूं जिस पर यह है (स्पष्ट रूप से स्तर बताते हुए)? – Razvi

संबंधित मुद्दे