Liquid - 1
Liquid 소개
기본 사용 방법
오브젝트나 변수들은 {{ 여기에 }} 넣어서 쓰고
선언을 하거나 로직을 쓸 때는 {% 이런식 %} 으로 쓴다
선언
{% assign my_variable = false %}
{% assign foo = "bar" %}
String만 ““를 쓴다.
필터
필터는 출력 대상 뒤에 |
를 붙이고 쓴다
{{ "/my/fancy/url" | append: ".html" }}
결과로는 /my/fancy/url.html 가 나온다.
다중 필터
필터는 여러개 사용 가능하며 오른쪽 방향으로 연산한다
{{ "adam!" | capitalize | prepend: "Hello " }}
결과로는 Hello Adam! 가 나온다.
연산자
등호 부등호는 같으나 &&는 and,
||는 or 라고 풀어서 쓴다.
contains로 포함여부 확인이 가능하고
기묘하게도 연산자는 왼쪽 방향으로 연산한다.
{% if true and false and false or true %}
This evaluates to false, since the tags are checked like this:
true and (false and (false or true))
true and (false and true)
true and false
false
{% endif %}
그 외에
{% if true == 1 %}
{{ "기묘하다" }}
{% elsif true == 0 %}
{{ "이상하다" }}
{% else %}
{{ "기괴하다" }}
{% endif %}
중요한 것은 리퀴드에서는 (일반 괄호)를 쓰지 않는다.
작동하지 않으며 에러를 유발한다.
Truthy와 Falsy
리퀴드에서는 nil 과 false 외에는 전부 truthy 값이다.
심지어 String이 비어있어도 truthy로 판정한다.
오브젝트 타입
리퀴드 오브젝트의 타입은
- String
- Number
- Boolean
- Nil (Null을 Nil이라고 쓴다
어색하다) - Array
이 다섯가지 뿐이다.
배열
site.users = “Tobi”, “Laura”, “Tetsuro”, “Adam”라고 했을때,
{% for user in site.users %}
{{ user }}
{% endfor %}
{{ site.users[0] }}
{{ site.users[1] }}
{{ site.users[3] }}
공백 제거
정신나간 리퀴드에서는 코드 줄에서 출력이 없더라도
빈줄로 출력이 된다.
그러므로
{% assign username = "John G. Chalmers-Smith" %}
{% if username and username.size > 10 %}
Wow, {{ username }}, you have a long name!
{% else %}
Hello there!
{% endif %}
의 결과물은 아래와 같다.
Wow, John G. Chalmers-Smith, you have a long name!
이런 끔찍한 참사를 막으려면
{%- assign username = "John G. Chalmers-Smith" -%}
{%- if username and username.size > 10 -%}
Wow, {{ username }}, you have a long name!
{%- else -%}
Hello there!
{%- endif -%}
위와 같이 {{- -}}, {%- -%}를 써야 아래와 같은 결과물을 얻을수 있다
Wow, John G. Chalmers-Smith, you have a long name!
주석
리퀴드는{% comment %} 기묘한 {% endcomment %}언어다
리퀴드는언어다
댓글남기기