diff options
author | max <gmx.sht@gmail.com> | 2023-12-11 16:43:16 +0200 |
---|---|---|
committer | Dirkjan Ochtman <dirkjan@ochtman.nl> | 2024-01-17 17:58:53 +0100 |
commit | 5cad82f38e800a42717284f20e7e0923add1e32f (patch) | |
tree | c58e7220a9e8500b65f3eb116ea12c43bd92a61a /testing | |
parent | 514ae1b24cebb50cad04d0717092a9f890b7a245 (diff) | |
download | askama-5cad82f38e800a42717284f20e7e0923add1e32f.tar.gz askama-5cad82f38e800a42717284f20e7e0923add1e32f.tar.bz2 askama-5cad82f38e800a42717284f20e7e0923add1e32f.zip |
Allow included templates to `extend`, `import`, and `macro`
Signed-off-by: max <gmx.sht@gmail.com>
Diffstat (limited to 'testing')
-rw-r--r-- | testing/templates/include-extends-base.html | 6 | ||||
-rw-r--r-- | testing/templates/include-extends-included.html | 2 | ||||
-rw-r--r-- | testing/templates/include-extends.html | 4 | ||||
-rw-r--r-- | testing/templates/include-macro.html | 4 | ||||
-rw-r--r-- | testing/templates/included-macro.html | 6 | ||||
-rw-r--r-- | testing/tests/include.rs | 41 |
6 files changed, 63 insertions, 0 deletions
diff --git a/testing/templates/include-extends-base.html b/testing/templates/include-extends-base.html new file mode 100644 index 0000000..7a54ca0 --- /dev/null +++ b/testing/templates/include-extends-base.html @@ -0,0 +1,6 @@ +<div> + <p>Below me is the header</p> + {% block header %}{% endblock %} + <p>Above me is the header</p> +</div> +Hello, {{ name }}! diff --git a/testing/templates/include-extends-included.html b/testing/templates/include-extends-included.html new file mode 100644 index 0000000..03b7553 --- /dev/null +++ b/testing/templates/include-extends-included.html @@ -0,0 +1,2 @@ +{% extends "include-extends-base.html" %} +{% block header %}foo{% endblock %} diff --git a/testing/templates/include-extends.html b/testing/templates/include-extends.html new file mode 100644 index 0000000..371c133 --- /dev/null +++ b/testing/templates/include-extends.html @@ -0,0 +1,4 @@ +<div> + <h1>Welcome</h1> + {% include "include-extends-included.html" %} +</div> diff --git a/testing/templates/include-macro.html b/testing/templates/include-macro.html new file mode 100644 index 0000000..e29789d --- /dev/null +++ b/testing/templates/include-macro.html @@ -0,0 +1,4 @@ +{% macro m(name) -%} + Hello, {{ name }}! +{%- endmacro -%} +{% include "included-macro.html" %} diff --git a/testing/templates/included-macro.html b/testing/templates/included-macro.html new file mode 100644 index 0000000..efbae18 --- /dev/null +++ b/testing/templates/included-macro.html @@ -0,0 +1,6 @@ +{% macro m2(name) -%} + Howdy, {{ name }}! +{%- endmacro -%} + +{% call m(name) %} +{% call m2(name2) %} diff --git a/testing/tests/include.rs b/testing/tests/include.rs index f461a7b..c11d96f 100644 --- a/testing/tests/include.rs +++ b/testing/tests/include.rs @@ -12,3 +12,44 @@ fn test_include() { let s = IncludeTemplate { strs: &strs }; assert_eq!(s.render().unwrap(), "\n INCLUDED: foo\n INCLUDED: bar") } + +#[derive(Template)] +#[template(path = "include-extends.html")] +struct IncludeExtendsTemplate<'a> { + name: &'a str, +} + +#[test] +fn test_include_extends() { + let template = IncludeExtendsTemplate { name: "Alice" }; + + assert_eq!( + template.render().unwrap(), + "<div>\n \ + <h1>Welcome</h1>\n \ + <div>\n \ + <p>Below me is the header</p>\n \ + foo\n \ + <p>Above me is the header</p>\n\ + </div>\n\ + Hello, Alice!\n\ + </div>" + ); +} + +#[derive(Template)] +#[template(path = "include-macro.html")] +struct IncludeMacroTemplate<'a> { + name: &'a str, + name2: &'a str, +} + +#[test] +fn test_include_macro() { + let template = IncludeMacroTemplate { + name: "Alice", + name2: "Bob", + }; + + assert_eq!(template.render().unwrap(), "Hello, Alice!\nHowdy, Bob!"); +} |