2012-11-26 13 views
21

मैं Jinja2 तर्क सूची घोषणा के अंदर टिप्पणियां कैसे डाल सकता हूं? jinja2.exceptions.TemplateSyntaxError:: अनपेक्षित वर्ण यू '#'Jinja2 इनलाइन टिप्पणियां

{{ Switch('var', 
    [('1', 'foo'), # comment 1 
    ('2', 'bar'), ## comment 2 
    ('3', 'rum'), {# comment 3 #} 
    ]) }} 


{% macro Switch(var, caselist) %} 
    {% for case, action in caselist%} 
     CMP {{var}} {{case}} 
     JNE {{LABEL}} 
     {{action}} 
     JMP {{LABELF}} 
{{LABEL}}: NOP 
    {%- endfor %} 
{{LABELF}}: NOP 
{%- endmacro -%} 

उत्तर

46

Jinja2 एक {{ ... }} कथन में टिप्पणी के लिए कोई समर्थन नहीं है

सब कुछ मैं कोशिश की है एक त्रुटि देता है। आप केवल टिप्पणियों का उपयोग के बाहर ऐसे बयानों के साथ कर सकते हैं, और उसके बाद केवल {# .. #} या ## comment के साथ।

  • {# .. #} केवल एक टेम्पलेट के हिस्सा अक्षम करने या अन्य Jinja2 वाक्य रचना की बाहर टिप्पणी जोड़ने के लिए है। आप इन घोंसला नहीं कर सकते हैं।
  • # statement के समतुल्य है, यदि line statements are enabled and so configured है।
  • ## comment केवल तभी कार्य करता है जब लाइन स्टेटमेंट सक्षम हैं, जिस बिंदु पर इसे एक टिप्पणी के रूप में माना जाता है।

आम तौर पर, जिन्जा स्टेटमेंट के बाहर, लक्ष्य भाषा में टिप्पणियों का उपयोग करें; जैसे <!-- comment --> एक्सएमएल उत्पन्न करते समय, आदि

+2

बाहरी टिप्पणियां मेरे मामले में इतनी सुंदर नहीं लगती हैं :( – kimstik

+0

"' {# .. #} "केवल एक टेम्पलेट के हिस्से को अक्षम करने के लिए है" - वर्तमान दस्तावेज से मेल नहीं खाता है, जहां इसका उपयोग '{# एक टिप्पणी #}' – timss

+1

@timss के रूप में भी किया जाता है: यह वाक्य * इस प्रश्न के संदर्भ में * पढ़ा जाना चाहिए, जहां ओपी ने ब्लॉक के भीतर '{# टिप्पणी 3 #}' का उपयोग किया था। हाँ, '{# ... #} 'का उपयोग टेम्पलेट के भाग (अक्षम करने) को छोड़कर टिप्पणी करने के लिए किया जाता है। –