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 %}언어다
리퀴드는언어다

댓글남기기