Hello! Can somebody clarify why the following code generates only one empty line and not more:
{% assign my_variable = "tomato" %}
{{ my_variable }}
? My understanding is:
-
assign adds \n before itself
-
assign adds \n after itself
-
{{ ... }} adds \n before itself
-
{{ ... }} adds \n after itself
- jekyll removes two consecutive
\n and replaces them with one \n between assign and {{ ... }}
I’ve read this article but it didn’t help.
assign doesn’t add \n before itself or after itself. It simply renders an empty string.
You may test with the following code:
Hello {% assign msg = 'Welcome!' %} Guest, {{ msg }}
(I’ve intentionally left two spaces between the closing delimiter %} and Guest).
The above template will render into:
Hello Guest, Welcome!
Note the three spaces between Hello and Guest — one space before assign tag and two after.
Now, the Liquid documentation you’ve linked to in your comment states:
By including a hyphen in your assign closing delimiter, you can strip the whitespace following it…
Let us try it out:
Hello {% assign msg = 'Welcome!' -%} Guest, {{ msg }}
Now, rendering the above template yields the following result :
Hello Guest, Welcome!
1 Like