Template Tags
Document not reviewed yet, might be outdated. Please,
let us know
if you find something invalid here.
On this page
KorTE include some basic tags by default.
Syntax
In KorTE you can use blocks like this:
{% block_marker %}
{% block %}...{% endblock %}
And you can trim spaces on the left, right or both sides of the block:
- Left:
{%- block_marker %}
- Right:
{% block_marker -%}
- Both:
{%- block_marker -%}
FOR
The simplest syntax for for is:
{% for key in list %}{{ key }}{% endfor %}
You can also iterate maps and lists of pairs:
{% for key, value in map %}{{ key }}={{ value }}{% endfor %}
It is possible define an else block to be executed when the iterable is empty:
{% for item in expression %}
{{ item }},
{% else %}
List is empty
{% endfor %}
Inside loops, there is a special variable called loop
with information about the iteration.
{% for item in expression %}
{{ loop.length }}
{{ loop.index }}
{{ loop.index0 }}
{{ loop.revindex }}
{{ loop.first }} -- boolean
{{ loop.last }} -- boolean
{% endfor %}
You can iterate ranges using the ..
operator:
{% for n in 0..9 %}{{ n }}, {% endfor %}
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
IF / ELSEIF / ELSE
The basic syntax:
{% if expression %}display only if expression is true{% endif %}
IF / ELSE syntax:
{% if expression %}
display only if expression is true
{% else %}
display only if expression is false
{% endif %}
IF / ELSEIF / ELSE syntax:
{% if expression1 %}
display only if expression is true
{% elseif expression2 %}
display if expression2 is true and expression1 was false
{% else %}
display only if not matched other entries
{% endif %}
SWITCH + CASE
{% switch expression %}
{% case "a" %}Case a
{% case "b" %}Case b
{% default %}Other cases
{% endswitch %}
SET
In order to create temporal variables you can use the set tag:
{% set variable = expression %}
DEBUG
Logs message to the standard output for debugging:
{% debug "test" %}
CAPTURE
{% capture variable %}REPEAT{% endcapture %}
{{ variable }} and {{ variable }}
MACRO + IMPORT
_macros.html
{% macro sum(a, b) %}
{{ a + b }}
{% endmacro %}
index.html
{% import "_macros.html" as macros %}
{{ macros.sum(1, 2) }}
INCLUDE
_include_.html
HELLO {{ name }}
index.html
{% set name = "WORLD" %}{% include "_include.html" %}
{% set name = "NAME" %}{% include "_include.html" %}
EXTENDS + BLOCK
KorTE supports template inheritance with multiply blocks.
_base.html
<html><head></head><body>
{% block content %}default content{% endblock %}
</body></html>
_two_columns.html
{% extends "_base.html" %}
{% block content %}
<div>{% block left %}default left column{% endblock %}</div>
<div>{% block right %}default right column{% endblock %}</div>
{% endblock %}
index.html
{% extends "_two_columns.html" %}
{% block left %}
My left column
{% endblock %}
{% block right %}
My prefix {{ parent() }} with additional content
{% endblock %}