<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Define variables with double quotes </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> title </jinja_code><jinja_operator>=</jinja_operator><jinja_code> </jinja_code><jinja_string>"Jinja Example"</jinja_string><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> items </jinja_code><jinja_operator>=</jinja_operator><jinja_code> </jinja_code><jinja_operator>[</jinja_operator><jinja_string>"Apple"</jinja_string><jinja_code>, </jinja_code><jinja_string>"Banana"</jinja_string><jinja_code>, </jinja_code><jinja_string>"Cherry"</jinja_string><jinja_operator>]</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> user </jinja_code><jinja_operator>=</jinja_operator><jinja_code> </jinja_code><jinja_operator>{</jinja_operator><jinja_string>"name"</jinja_string><jinja_code>: </jinja_code><jinja_string>"John"</jinja_string><jinja_code>, </jinja_code><jinja_string>"age"</jinja_string><jinja_code>: </jinja_code><jinja_decimal>30</jinja_decimal><jinja_code>, </jinja_code><jinja_string>"is_active"</jinja_string><jinja_code>: </jinja_code><jinja_constant>true</jinja_constant><jinja_operator>}</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Conditional statement </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_ctrlflow>if</jinja_ctrlflow><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>is_active </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal>User </jinja_normal><jinja_delimiter>{{</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>+</jinja_operator><jinja_code> </jinja_code><jinja_string>'is active'</jinja_string><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_ctrlflow>else</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal>User </jinja_normal><jinja_delimiter>{{</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>+</jinja_operator><jinja_code> </jinja_code><jinja_string>'is not active'</jinja_string><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_ctrlflow>endif</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Loop through a list sorted, tested items </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_ctrlflow>for</jinja_ctrlflow><jinja_code> item </jinja_code><jinja_operator>in</jinja_operator><jinja_code> items </jinja_code><jinja_ctrlflow>if</jinja_ctrlflow><jinja_code> </jinja_code><jinja_operator>not</jinja_operator><jinja_code> item </jinja_code><jinja_operator>is</jinja_operator><jinja_code> </jinja_code><jinja_builtin>boolean</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal>Fruit: </jinja_normal><jinja_delimiter>{{</jinja_delimiter><jinja_code> item </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_ctrlflow>endfor</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Using custom and built-in filters with trim options </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{{-</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>upper</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>-}}</jinja_delimiter><br/>
<jinja_delimiter>{{+</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>length</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>+}}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_function>comment_text</jinja_function><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>upper</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code> user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_function>comment_text</jinja_function><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>length</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> ... also without spaces </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{{-</jinja_delimiter><jinja_code>user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>name</jinja_code><jinja_operator>|</jinja_operator><jinja_builtin>safe</jinja_builtin><jinja_delimiter>-}}</jinja_delimiter><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> ... and with math </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code>user</jinja_code><jinja_operator>.</jinja_operator><jinja_code>age </jinja_code><jinja_operator>-</jinja_operator><jinja_code> </jinja_code><jinja_operator>(</jinja_operator><jinja_decimal>42</jinja_decimal><jinja_code> </jinja_code><jinja_operator>%</jinja_operator><jinja_code> </jinja_code><jinja_basen>0xff</jinja_basen><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_operator>/</jinja_operator><jinja_code> </jinja_code><jinja_float>3.2</jinja_float><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_builtin>safe</jinja_builtin><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Calling python functions </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code> f</jinja_code><jinja_operator>.</jinja_operator><jinja_function>bar</jinja_function><jinja_operator>(</jinja_operator><jinja_float>3.14</jinja_float><jinja_code> </jinja_code><jinja_operator>!=</jinja_operator><jinja_code> f</jinja_code><jinja_operator>.</jinja_operator><jinja_function>pi</jinja_function><jinja_operator>())</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Using a block for template inheritance </jinja_comment><jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>block</jinja_keyword><jinja_code> content </jinja_code><jinja_keyword>scoped</jinja_keyword><jinja_code> </jinja_code><jinja_keyword>required</jinja_keyword><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal>Default content</jinja_normal><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>endblock</jinja_keyword><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Macro with multiline comment and description</jinja_comment><br/>
<jinja_comment></jinja_comment><br/>
<jinja_comment>  using filter with parameter</jinja_comment><br/>
<jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>macro</jinja_keyword><jinja_code> </jinja_code><jinja_function>format_comments</jinja_function><jinja_operator>(</jinja_operator><jinja_code>comments</jinja_code><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>-%}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code> comments </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_function>comment_text</jinja_function><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>join</jinja_builtin><jinja_operator>(</jinja_operator><jinja_string>'</jinja_string><jinja_escape>\n</jinja_escape><jinja_string>    '</jinja_string><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>endmacro</jinja_keyword><jinja_code> </jinja_code><jinja_delimiter>-%}</jinja_delimiter><br/>
<jinja_normal></jinja_normal><br/>
<jinja_delimiter>{#</jinja_delimiter><jinja_comment> Advanced macro using nested branches, member access,</jinja_comment><br/>
<jinja_comment>  filters and tests with custom and built-in functions</jinja_comment><br/>
<jinja_delimiter>#}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>macro</jinja_keyword><jinja_code> </jinja_code><jinja_function>join_params</jinja_function><jinja_operator>(</jinja_operator><jinja_code>operation, default_values </jinja_code><jinja_operator>=</jinja_operator><jinja_code> </jinja_code><jinja_constant>false</jinja_constant><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>   </jinja_code><jinja_ctrlflow>if</jinja_ctrlflow><jinja_code> default_values </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>     </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> params </jinja_code><jinja_operator>=</jinja_operator><jinja_code> operation</jinja_code><jinja_operator>.</jinja_operator><jinja_code>parameters </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>map</jinja_builtin><jinja_operator>(</jinja_operator><jinja_code>attribute</jinja_code><jinja_operator>=</jinja_operator><jinja_string>'parameter_type_default'</jinja_string><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>join</jinja_builtin><jinja_operator>(</jinja_operator><jinja_string>', '</jinja_string><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>   </jinja_code><jinja_ctrlflow>else</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>     </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> params </jinja_code><jinja_operator>=</jinja_operator><jinja_code> operation</jinja_code><jinja_operator>.</jinja_operator><jinja_code>parameters </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>map</jinja_builtin><jinja_operator>(</jinja_operator><jinja_string>'parameter_type'</jinja_string><jinja_code>, default</jinja_code><jinja_operator>=</jinja_operator><jinja_string>'void'</jinja_string><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>join</jinja_builtin><jinja_operator>(</jinja_operator><jinja_string>', '</jinja_string><jinja_operator>)</jinja_operator><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>   </jinja_code><jinja_ctrlflow>endif</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>   </jinja_code><jinja_ctrlflow>if</jinja_ctrlflow><jinja_code> operation</jinja_code><jinja_operator>.</jinja_operator><jinja_code>zoned </jinja_code><jinja_operator>is</jinja_operator><jinja_code> </jinja_code><jinja_builtin>boolean</jinja_builtin><jinja_code> </jinja_code><jinja_operator>and</jinja_operator><jinja_code> operation</jinja_code><jinja_operator>.</jinja_operator><jinja_code>zoned </jinja_code><jinja_operator>is</jinja_operator><jinja_code> </jinja_code><jinja_function>zone_valid</jinja_function><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>     </jinja_code><jinja_ctrlflow>if</jinja_ctrlflow><jinja_code> params </jinja_code><jinja_operator>|</jinja_operator><jinja_code> </jinja_code><jinja_builtin>length</jinja_builtin><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>       </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> params </jinja_code><jinja_operator>=</jinja_operator><jinja_code> params </jinja_code><jinja_operator>+</jinja_operator><jinja_code> </jinja_code><jinja_string>', const QString &zone'</jinja_string><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>     </jinja_code><jinja_ctrlflow>else</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>       </jinja_code><jinja_keyword>set</jinja_keyword><jinja_code> params </jinja_code><jinja_operator>=</jinja_operator><jinja_code> </jinja_code><jinja_string>'const QString &zone'</jinja_string><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>     </jinja_code><jinja_ctrlflow>endif</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{%</jinja_delimiter><jinja_code>   </jinja_code><jinja_ctrlflow>endif</jinja_ctrlflow><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
<jinja_delimiter>{{</jinja_delimiter><jinja_code>params</jinja_code><jinja_delimiter>}}</jinja_delimiter><br/>
<jinja_delimiter>{%-</jinja_delimiter><jinja_code> </jinja_code><jinja_keyword>endmacro</jinja_keyword><jinja_code> </jinja_code><jinja_delimiter>%}</jinja_delimiter><br/>
