diff --git a/README.md b/README.md index 5b62a6c..578b58a 100644 --- a/README.md +++ b/README.md @@ -260,13 +260,14 @@ env.set_trim_blocks(true); env.set_lstrip_blocks(true); ``` -With both `trim_blocks` and `lstrip_blocks` enabled, you can put statements on their own lines. Furthermore, you can also strip whitespaces by hand. If you add a minus sign (`-`) to the start or end of a statement, the whitespaces before or after that block will be removed: +With both `trim_blocks` and `lstrip_blocks` enabled, you can put statements on their own lines. Furthermore, you can also strip whitespaces for both statements and expressions by hand. If you add a minus sign (`-`) to the start or end, the whitespaces before or after that block will be removed: ```.cpp +render("Hello {{- name -}} !", data); // "Hello Inja!" render("{% if neighbour in guests -%} I was there{% endif -%} !", data); // Renders without any whitespaces ``` -Stripping behind a statement also remove any newlines. +Stripping behind a statement or expression also removes any newlines. ### Callbacks diff --git a/test/test-renderer.cpp b/test/test-renderer.cpp index 6837069..46935ef 100644 --- a/test/test-renderer.cpp +++ b/test/test-renderer.cpp @@ -204,6 +204,10 @@ TEST_CASE("templates") { CHECK(env.render("Test\n {%- if is_happy %}{{ name }}{% endif %} ", data) == "Test\nPeter "); CHECK(env.render(" {%+ if is_happy %}{{ name }}{% endif %}", data) == " Peter"); CHECK(env.render(" {%- if is_happy %}{{ name }}{% endif -%} \n ", data) == "Peter"); + + CHECK(env.render(" {{- name -}} \n ", data) == "Peter"); + CHECK(env.render("Test\n {{- name }} ", data) == "Test\nPeter "); + CHECK(env.render(" {{ name }}\n ", data) == " Peter\n "); // Nothing will be stripped if there are other characters before the start of the block. CHECK(env.render(". {%- if is_happy %}{{ name }}{% endif -%}\n", data) == ". Peter");