diff --git a/docs/level-12-use-template-engine-extensions/.moban.yml b/docs/level-12-use-template-engine-extensions/.moban.yml new file mode 100644 index 00000000..63b4bc64 --- /dev/null +++ b/docs/level-12-use-template-engine-extensions/.moban.yml @@ -0,0 +1,6 @@ +targets: + - a.output: a.template + - b.output: b.template +extensions: + jinja2: + - jinja2.ext.with_ diff --git a/docs/level-12-use-template-engine-extensions/README.rst b/docs/level-12-use-template-engine-extensions/README.rst index 8f5fd621..07b06554 100644 --- a/docs/level-12-use-template-engine-extensions/README.rst +++ b/docs/level-12-use-template-engine-extensions/README.rst @@ -3,16 +3,25 @@ Level 11: use template engine extensions jinja2 comes with a lot of extensions. In order not to be the blocker in the middle, **extensions** is allowed in moban file to initialize jinja2 engine -with desired extensions +with desired extensions. Two extensions, expression-statement and loop-controls +are enabled by default. The extensions syntax is:: extensions: jinja2: - - jinja2.ext.do - - jinja2.ext.loopcontrols + - jinja2.ext.i18n Evaluation -------------------------------------------------------------------------------- +Please go to `docs/level-12-use-template-engine-extensions` directory. +If you notice the file `a.template`, we are using a for loop control. This is +because moban comes with two default extensions loop-controls and +expression-statement. + +Now, let us try to use the extension `with`. To do that, we have to enable the +extension in the `.moban.yml` file following the above syntax. Now, the +extension can be used in the jinja2 templates. One such example is shown in the +`b.template` file. diff --git a/docs/level-12-use-template-engine-extensions/a.template b/docs/level-12-use-template-engine-extensions/a.template new file mode 100644 index 00000000..da43df97 --- /dev/null +++ b/docs/level-12-use-template-engine-extensions/a.template @@ -0,0 +1,3 @@ +{% for _ in range(1,5) %} +{{ hello }} +{% endfor %} diff --git a/docs/level-12-use-template-engine-extensions/b.template b/docs/level-12-use-template-engine-extensions/b.template new file mode 100644 index 00000000..72937b14 --- /dev/null +++ b/docs/level-12-use-template-engine-extensions/b.template @@ -0,0 +1,9 @@ +{% with %} + {% set foo = 142 %} +{{ foo }} + {% with %} + {% set foo = 42 %} +{{ foo }} + {% endwith %} +{{ foo }} +{% endwith %} diff --git a/docs/level-12-use-template-engine-extensions/data.yml b/docs/level-12-use-template-engine-extensions/data.yml new file mode 100644 index 00000000..bb56b055 --- /dev/null +++ b/docs/level-12-use-template-engine-extensions/data.yml @@ -0,0 +1 @@ +hello: world diff --git a/tests/test_docs.py b/tests/test_docs.py index 1a4470b4..7b6e9f5e 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -107,6 +107,20 @@ def test_level_11(self): folder = "level-11-use-handlebars" self._raw_moban(["moban"], folder, expected, "a.output") + def test_level_12(self): + expected_a = """world +world +world +world +""" + expected_b = """142 +42 +142 +""" + folder = "level-12-use-template-engine-extensions" + self._raw_moban(["moban"], folder, expected_a, "a.output") + self._raw_moban(["moban"], folder, expected_b, "b.output") + def test_misc_1(self): expected = "test file\n"