변수

Jekyll 은 작업이 필요한 파일을 찾아 사이트 내부를 이리저리 돌아다닙니다. 작업 대상은 머리말을 가진 모든 파일입니다. Jekyll 은 Liquid를 통해 각각의 작업 대상 파일마다 다양한 데이터를 생성합니다. 사용할 수 있는 데이터 목록은 다음과 같습니다.

전역 변수

변수 설명

site

사이트 정보 + _config.yml 의 환경설정 정보. 더 자세한 내용은 아래를 참조하시오.

page

페이지 관련 정보 + 머리말. 머리말에 설정한 사용자 변수도 여기에 포함된다. 더 자세한 내용은 아래를 참조하시오.

layout

레이아웃 관련 정보 + 머리말. 레이아웃의 머리말에 설정한 사용자 변수도 여기에 포함된다.

content

레이아웃 파일 내, 포스트 또는 페이지로 감싸진 렌더링된 컨텐츠. 포스트나 페이지 파일에는 정의되어 있지 않다.

paginator

이 변수는 환경설정 옵션 paginate 가 설정되어 있을 때 사용할 수 있다. 더 자세한 내용에 대해서는 페이지 나누기를 참조.

사이트 변수

변수 설명

site.time

현재 시간 (jekyll 명령을 실행한 시간).

site.pages

모든 페이지 목록.

site.posts

시간 역순의 모든 포스트 목록.

site.related_posts

처리중인 파일이 포스트인 경우에, 최대 10 개의 연관 포스트 목록이 이 변수에 할당된다. 디폴트로 가장 최신 포스트 10 개를 가리킨다. 느린 속도를 감수하고 고품질의 결과를 얻으려면, jekyll명령을 --lsi (Latent Semantic Indexing) 옵션과 함께 실행한다. 단, GitHub Pages 가 사이트를 생성할 때는 lsi 옵션을 지원하지 않는다.

site.static_files

정적 파일 (다시 말해, Jekyll 의 변환기나 Liquid 렌더러가 처리하지 않는 파일들) 전체 목록. 모든 파일은 다섯 가지 속성을 갖고 있다: pathmodified_time, name, basename, extname.

site.html_pages

.html 로 끝나는 site.pages 목록의 하위 세트.

site.html_files

.html 로 끝나는 site.static_files 목록의 하위 세트.

site.collections

모든 콜렉션 목록 (포스트 포함).

site.data

_data 디렉토리에 있는 YAML 파일에서 읽어들인 데이터 목록.

site.documents

각 콜렉션의 모든 문서 목록.

site.categories.CATEGORY

CATEGORY 카테고리에 속한 모든 포스트 목록.

site.tags.TAG

TAG 태그가 붙은 모든 포스트 목록.

site.url

_config.yml 에 설정한 사이트의 URL. 예를 들어, 환경설정 파일에 url: http://mysite.com 라는 내용이 있으면, Liquid 변수 site.url 로 이 값에 접근할 수 있다. 개발 환경에서는 한 가지 예외가 있는데, 개발 환경에서 jekyll serve 를 실행하면 site.urlhostport, SSL 관련 옵션으로 설정된다. 기본값은 url:http://localhost:4000 이다.

site.[CONFIGURATION_DATA]

명령행이나 _config.yml 을 통해 설정된 모든 변수들은 site 변수를 통해 사용할 수 있다. 예를 들어, 환경설정 파일에 foo: bar 가 있다면, site.foo 와 같이 Liquid 로 접근할 수 있다. watch 모드가 켜진 경우에도 _config.yml 파일의 변경사항은 자동으로 적용되지 않기 때문에, 변경된 변수를 적용하려면 Jekyll 을 재시작해야 한다.

페이지 변수

변수 설명

page.content

페이지의 컨텐츠. 어떤 Liquid 처리가 되었는지, 어떤 page 인지에 따라 렌더링 되었을 수도 아닐 수도 있다.

page.title

페이지의 제목.

page.excerpt

렌더링 되지 않은, 문서의 발췌 부분.

page.url

도메인을 제외하고, 슬래시 문자로 시작하는 포스트 URL. 예시, /2008/12/14/my-post.html

page.date

포스트에 할당된 날짜. 포스트의 머리말에 YYYY-MM-DD HH:MM:SS (UTC 기준), 또는 YYYY-MM-DD HH:MM:SS +/-TTTT (UTC 로부터의 오프셋을 사용한 타임 존 지정. 예시, 2008-12-14 10:30:00 +0900) 형식으로 새로운 날짜/시간을 지정하여 덮어쓸 수 있다.

page.id

포스트나 콜렉션의 문서에 대한 유일한 식별자 (RSS 피드에 유용함). 예시, /2008/12/14/my-post/my-collection/my-document

page.categories

이 포스트가 속한 카테고리들의 목록. _posts 디렉토리의 상위 디렉토리 구조가 카테고리를 결정한다. 예를 들어, 경로가 /work/code/_posts/2008-12-24-closures.md 인 포스트에서는 이 변수가 ['work', 'code'] 로 설정되어 있다. 이 변수는 머리말에서도 설정할 수 있다.

page.collection

The label of the collection to which this document belongs. e.g. posts for a post, or puppies for a document at path _puppies/rover.md. If not part of a collection, an empty string is returned.

page.tags

포스트에 붙어있는 태그 목록. 이 변수는 머리말에 설정할 수 있다.

page.dir

The path between the source directory and the file of the post or page, e.g. /pages/. This can be overridden by permalink in the front matter.

page.name

The filename of the post or page, e.g. about.md

page.path

페이지 또는 포스트의 실제 경로. 활용 예시: 페이지 또는 포스트에 대한 GitHub 소스를 링크하기. 이 변수는 머리말에서 덮어쓸 수 있다.

page.next

site.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 다음 포스트의 상대 경로. 마지막 항목이라면 nil 을 반환한다.

page.previous

site.posts 의 포스트 중에서 현재 포스트 위치를 기준으로 한 이전 포스트의 상대 경로. 첫 번째 항목이라면 nil 을 반환한다.

ProTip™: 사용자 머리말을 사용하세요

모든 사용자 머리말은 page 로 사용할 수 있습니다. 예를 들어, 페이지 머리말에 custom_css: true 를 설정한 경우, page.custom_css 로 해당 값을 사용할 수 있습니다.

레이아웃에 머리말을 지정했다면, layout 로 접근할 수 있습니다. 예를 들어, 레이아웃의 머리말에 class: full_page 라고 설정했다면, 해당 레이아웃과 그 부모 레이아웃에서 layout.class 로 사용할 수 있습니다.

Paginator

변수 설명

paginator.page

현재 페이지 번호

paginator.per_page

페이지 당 포스트 수

paginator.posts

현재 페이지의 포스트들

paginator.total_posts

전체 포스트 개수

paginator.total_pages

전체 페이지 개수

paginator.previous_page

이전 페이지 번호. 이전 페이지가 없는 경우 nil

paginator.previous_page_path

이전 페이지 경로. 이전 페이지가 없는 경우 nil

paginator.next_page

다음 페이지 번호. 다음 페이지가 없는 경우 nil

paginator.next_page_path

다음 페이지 경로. 다음 페이지가 없는 경우 nil

Paginator 변수 사용 위치

이 변수들은 오직 인덱스 파일에서만 사용할 수 있지만, /blog/index.html 같은 하위 디렉토리 인덱스 파일도 해당됩니다.