Post

liquid 문법/삽질 정리

목차


liquid 문법

아래 사이트에서 정확한 문법을 확인할 수 있다.

https://shopify.github.io/liquid/filters/abs/

https://shopify.dev/api/liquid/filters

for

1
2
3
4
5
6
7
{% for item in array %}
  {{ item }}
{% endfor %}

{% for i in (1..5) %}
  {{ i }}
{% endfor %}

if

1
2
3
{% if condition %}
  {{ item }}
{% endif %}

variable

1
2
{% assign var1 = "value" %}
{% assign var2 = 0 %}

variable plus 1 (변수 1 증가)

1
2
3
{% assign var1= 0 %}

{% assign var1= var1 | plus: 1 %}

remove string

filename 변수에서 0001-01-01- string을 제거하고 출력

1
{{ filename | remove_first: '0001-01-01-' }}

liquid 삽질

liquid warning

어느날 지킬 서버를 돌리다가 아래와 같은 warning이 뜨는 것을 발견했다.

1
Liquid Warning: Liquid syntax error (line 32): Unexpected character = in "{{data={(char*)data}}" in path/to/filename.md

Warning이 나는 파일을 살펴보니 {{data={(char*)data}} 문자열의 {{, }} 를 liquid 태그로 인식하여 정상적인 출력이 이루어지지 않고 있었다.

이는 liquid 태그를 사용할 때 {% raw %}, {% endraw %} 태그로 감싸주면 해결된다.

{% raw %}
{{data={(char*)data}}
{% endraw %}

정상적으로 {{data={(char*)data}} 내용이 출력되었음을 확인할 수 있다.

번외

{% endraw %} 문자를 출력시킬 경우 {%, %} 문자를 liquid 태그로 인식하므로

\{% endraw %\} 처럼 \ 문자를 붙이거나 아래와 같이 태그로 감싸야 한다.

1
<code class="language-plaintext highlighter-rouge">{&#37; endraw &#37;}</code>

<pre> </pre> 태그(markdown의 ```)를 사용하는 경우 아래와 같이 html 태그로 감싼 뒤 html entity를 붙여 태그로 인식하지 못하게 막아야 한다.

1
2
3
4
5
6
<div class="highlight">
<pre class="highlight"><code>{% raw %}
{{data={(char*)data}}
{&#37; endraw &#37;}
</code></pre>
</div>
This post is licensed under CC BY 4.0 by the author.