// retoor <retoor@molodetz.nl>
import "jinja" for Environment, DictLoader
var env = Environment.new(DictLoader.new({
"simple": "Hello {{ name }}!",
"escaped": "{{ html }}",
"safe": "{{ html|safe }}",
"nested": "{{ user.name }} is {{ user.age }}",
"subscript": "{{ items[0] }} and {{ items[1] }}",
"literal_str": "{{ \"literal\" }}",
"literal_num": "{{ 42 }}",
"literal_bool": "{{ true }}",
"literal_list": "{{ [1, 2, 3]|join(\", \") }}",
"default": "{{ missing|default(\"fallback\") }}",
"concat": "{{ a ~ b }}"
}))
System.print(env.getTemplate("simple").render({"name": "World"})) // expect: Hello World!
System.print(env.getTemplate("escaped").render({"html": "<b>bold</b>"})) // expect: &lt;b&gt;bold&lt;/b&gt;
System.print(env.getTemplate("safe").render({"html": "<b>bold</b>"})) // expect: <b>bold</b>
System.print(env.getTemplate("nested").render({"user": {"name": "Alice", "age": 30}})) // expect: Alice is 30
System.print(env.getTemplate("subscript").render({"items": ["first", "second", "third"]})) // expect: first and second
System.print(env.getTemplate("literal_str").render({})) // expect: literal
System.print(env.getTemplate("literal_num").render({})) // expect: 42
System.print(env.getTemplate("literal_bool").render({})) // expect: true
System.print(env.getTemplate("literal_list").render({})) // expect: 1, 2, 3
System.print(env.getTemplate("default").render({})) // expect: fallback
System.print(env.getTemplate("concat").render({"a": "Hello", "b": "World"})) // expect: HelloWorld