Liquid 필터

표준 Liquid 필터를 모두 지원합니다 (아래 참조).

자주 수행하는 작업들을 더 쉽게하기 위해, Jekyll 만을 위한 몇 가지 유용한 필터가 추가되어 있으며, 모두 이 페이지에 설명되어 있습니다. 게다가 플러그인을 사용하면 자신만의 필터도 만들 수 있습니다.

설명 필터출력

Relative URL

입력값 앞에 baseurl 값을 추가한다. 사이트가 최상위 경로가 아닌 하위 경로에서 호스팅 될 경우 유용하다.

{{ "/assets/style.css" | relative_url }}

/my-baseurl/assets/style.css

Absolute URL

입력값 앞에 urlbaseurl 값을 추가한다.

{{ "/assets/style.css" | absolute_url }}

http://example.com/my-baseurl/assets/style.css

Date to XML Schema

날짜를 XML 스키마 (ISO 8601) 형식으로 변환한다.

{{ site.time | date_to_xmlschema }}

2008-11-07T13:07:54-08:00

Date to RFC-822 Format

날짜를 RSS 피드에 사용하는 RFC-822 형식으로 변환한다.

{{ site.time | date_to_rfc822 }}

Mon, 07 Nov 2008 13:07:54 -0800

Date to String

날짜를 짧은 형식으로 변환한다.

{{ site.time | date_to_string }}

07 Nov 2008

Date to String in ordinal US style

날짜를 미국식 짧은 서수형으로 변환한다. 3.8.0

{{ site.time | date_to_string: "ordinal", "US" }}

Nov 7th, 2008

Date to Long String

날짜를 긴 형식으로 변환한다.

{{ site.time | date_to_long_string }}

07 November 2008

Date to Long String in ordinal UK style

날짜를 영국식 긴 서수형으로 변환한다. 3.8.0

{{ site.time | date_to_long_string: "ordinal" }}

7th November 2008

Where

배열 안에서 특정 키와 값을 가진 객체들을 선택한다.

{{ site.members | where:"graduation_year","2014" }}

Where Expression

배열 안에서 표현식이 참인 객체들을 선택한다. 3.2.0

{{ site.members | where_exp:"item", "item.graduation_year == 2014" }}

{{ site.members | where_exp:"item", "item.graduation_year < 2014" }}

{{ site.members | where_exp:"item", "item.projects contains 'foo'" }}

Group By

배열 안의 항목들을 특정 속성으로 그룹 짓는다.

{{ site.members | group_by:"graduation_year" }}

[{"name"=>"2013", "items"=>[...]}, {"name"=>"2014", "items"=>[...]}]

Group By Expression

배열 안의 항목들을 Liquid 표현식을 사용해 그룹 짓는다. 3.4.0

{{ site.members | group_by_exp: "item", "item.graduation_year | truncate: 3, ''" }}

[{"name"=>"201", "items"=>[...]}, {"name"=>"200", "items"=>[...]}]

XML Escape

XML 에 사용되는 몇몇 텍스트를 이스케이프 한다.

{{ page.content | xml_escape }}

CGI Escape

URL 에 사용되는 CGI 이스케이프 문자열. 모든 특수문자를 그에 맞는 %XX 로 변환한다. 일반적으로 CGI 이스케이프에서는 공백이 + 문자로 교체된다.

{{ "foo, bar; baz?" | cgi_escape }}

foo%2C+bar%3B+baz%3F

URI Escape

URI 에 있는 특수 문자들에 퍼센트 문자 인코딩을 한다. 일반적으로 URI 이스케이프에서는 공백이 %20 로 교체된다. 예약 문자들은 이스케이프되지 않는다.

{{ "http://foo.com/?q=foo, \bar?" | uri_escape }}

http://foo.com/?q=foo,%20%5Cbar?

Number of Words

텍스트 안의 단어 수를 센다.

{{ page.content | number_of_words }}

1337

Array to Sentence

배열을 한 문장으로 변환한다. 태그를 나열할 때 유용하다. 커넥터에는 선택사항이다.

{{ page.tags | array_to_sentence_string }}

foo, bar, and baz

{{ page.tags | array_to_sentence_string: "or" }}

foo, bar, or baz

Markdownify

마크다운 형식 문자열을 HTML 로 변환한다.

{{ page.excerpt | markdownify }}

Smartify

"일반 따옴표" 를 “세련된 따옴표”로 변환한다.

{{ page.title | smartify }}

Converting Sass/SCSS

Sass 또는 SCSS 형식 문자열을 CSS 로 변환한다.

{{ some_sass | sassify }}

{{ some_scss | scssify }}

Slugify

문자열을 소문자 URL "슬러그"로 변환한다. 자세한 옵션은 아래를 참고하시오.

{{ "The _config.yml file" | slugify }}

the-config-yml-file

{{ "The _config.yml file" | slugify: "pretty" }}

the-_config.yml-file

{{ "The _cönfig.yml file" | slugify: "ascii" }}

the-c-nfig-yml-file

{{ "The cönfig.yml file" | slugify: "latin" }}

the-config-yml-file

Data To JSON

해시나 배열을 JSON 으로 변환한다.

{{ site.data.projects | jsonify }}

Normalize Whitespace

모든 공백문자를 하나의 공백으로 변환한다.

{{ "a \n b" | normalize_whitespace }}

Sort

배열을 정렬한다. 해시를 위한 추가 전달인자 1. 프로퍼티 이름 2. nils 순서 (first 또는 last).

{{ page.tags | sort }}

{{ site.posts | sort: "author" }}

{{ site.pages | sort: "title", "last" }}

Sample

배열에서 랜덤으로 값을 하나 선택한다. 선택사항으로, 값을 여러개 고른다.

{{ site.pages | sample }}

{{ site.pages | sample: 2 }}

To Integer

문자열 또는 부울 값을 정수형으로 변환한다.

{{ some_var | to_integer }}

Array Filters

배열에 항목을 삽입, 추출, 순환시킨다. 이 필터는 비파괴적이다. 예시, 해당 배열을 직접 변경하지 않고, 복사본을 만든 후 변경한다.

{{ page.tags | push: "Spokane" }}

["Seattle", "Tacoma", "Spokane"]

{{ page.tags | pop }}

["Seattle"]

{{ page.tags | shift }}

["Tacoma"]

{{ page.tags | unshift: "Olympia" }}

["Olympia", "Seattle", "Tacoma"]

Inspect

디버깅을 위해 객체를 문자열로 표시한다.

{{ some_var | inspect }}

slugify 필터의 옵션들

slugify 필터에는 옵션이 있어서, 무엇을 필터링할 것인지 선택할 수 있습니다. 디폴트값은 default 입니다. 옵션값(과 그에 대한 필터링 대상)은 다음과 같습니다:

  • none: 필터링 안함
  • raw: 공백문자
  • default: 알파벳, 숫자가 아닌 문자 또는 공백문자
  • pretty: 알파벳, 숫자가 아닌 문자 (._~!$&'()+,;=@ 제외) 또는 공백문자
  • ascii: 알파벳, 숫자, ASCII 가 아닌 문자 또는 공백문자
  • latin: default 와 동일하나, 라틴 문자를 우선적으로 변환한다 (예, àèïòüaeiou 로)3.7.0 .

where 필터로 nil 값 찾기4.0

프로퍼티가 nil 이나 "" 인 문서나 페이지를 찾기 위해 where 필터를 사용할 수 있습니다. 예를 들어,

// `nil` 을 사용해서 `my_prop` 이 정의되어 있지 않거나
// 명시적으로 `nil` 이 설정되어 있는 포스트를 찾기
{% assign filtered_posts = site.posts | where: 'my_prop', nil %}
// Liquid 의 특수 리터럴 `empty` 또는 `blank` 를 사용해서
// 변수 `my_prop` 의 값이 비어있는 포스트를 찾기.
{% assign filtered_posts = site.posts | where: 'my_prop', empty %}

이항 연산자와 where_exp 필터4.0

Liquid 의 이항 연산자 orand 를 사용한 표현식을 where_exp 필터에 전달하여 조건문을 여러 개 사용할 수 있습니다.

예를 들어, 영어권의 공포영화에 대한 목록을 얻으려면, 다음 코드를 사용할 수 있을 것입니다:

{{ site.movies | where_exp: "item", "item.genre == 'horror' and item.language == 'English'" }}

또, 만화를 기반으로한 영화의 목록을 얻으려 할 때, 다음과 같이 사용할 수도 있습니다:

{{ site.movies | where_exp: "item", "item.sub_genre == 'MCU' or item.sub_genre == 'DCEU'" }}

기본 Liquid 필터

편의를 돕기 위해, 여기 Liquid 필터 전체 목록에 공식 Liquid 문서의 예제를 링크해두었습니다.