013. JeKyll 컨텐츠 - (6) 변수(Variables)

컨텐츠 - (6) 변수(Variables)

본 카테고리는 정적 블로그 생성도구인 Jekyll에 관하여 작성하는 곳이다.

공식 사이트의 내용을 좀 더 풀어쓰고 스크린샷을 첨부하여 좀 더 상세히 기록하고자 한다.

참고 Jekyll 공식 사이트

변수(Variables)

Jekyll은 사이트를 탐색하며 처리할 파일을 찾는다.

YAML 머리말을 가진 모든 파일이 처리할 대상이며, Jekyll은 각 파일들에 대해 Liquid 템플릿 시스템을 통해 다양한 데이터를 제공한다.

본 포스팅은 Jekyll에서 사용 가능한 데이터를 참조할 수 있는 변수들을 소개한다.

전역 변수

변수 설명
site 사이트 전체의 정보와 _config.yml의 정보 접근
page 페이지 정보와 YAML 머리말, 머리말에 추가된 사용자 정의 변수 접근
layout 레이아웃 정보와 YAML 머리말, 머리말에 추가된 사용자 정의 변수 접근
content 레이아웃 파일의 content 영역에 포스트 혹은 페이지의 컨텐츠가 렌더링되는 변수
paginator 페이지를 처리할 수 있는 변수
paginate 속성이 활성화되어야 사용 가능

사이트(site) 변수

변수 설명
site.time 현재 시간(Jekyll 명령을 사용한 시간)
site.pages 모든 페이지들의 목록
site.posts 모든 포스트들의 목록(역순)
site.related_posts 처리중인 파일이 포스트인 경우 10개의 관련 게시물 목록(최대 10개)
기본값 : 최근 10개의 게시물
처리 속도가 느리지만 고품질의 결과를 원한다면 명령시 --lsi 옵션 포함
Github Pages는 lsi 옵션을 지원하지 않음
site.static_files 모든 정적 파일 목록
site.html_pages .html로 끝나는 site.pages의 부분 집합 목록
site.html_files .html로 끝나는 site.static_files의 부분 집합 목록
site.collections 모든 컬렉션 목록
site.data YAML 파일에서 불러온 _data 폴더에 있는 데이터 목록
site.documents 모든 컬렉션의 문서 목록
site.categories.CATEGORY CATEGORY값의 카테고리를 가진 모든 포스트 목록
site.tags.TAG TAG값의 태그 가진 모든 포스트 목록
site.[CONFIGURATION_DATA] 명령 혹은 _config.yml 파일에서 설정된 값에 접근
예) _config.yml 파일에 있는 url값은 site.url로 접근

주의 –watch 옵션을 통해 자동생성을 반복할시 jekyll의 환경설정 파일인 _config.yml의 변경사항은 반영되지 않는다.

페이지(page) 변수

변수 설명
page.content 페이지의 내용
어떤 Liquid가 처리되었느냐 혹은 어떤 페이지냐에 따라 렌더링되었거나 렌더링되지 않은 페이지의 내용
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
page.id RSS Feed에 활용할 수 있는 포스트의 고유 식별자
page.categories 포스트가 속한 카테고리 목록
_post 폴더의 상위 디렉토리 구조에서 카테고리 설정
예) /work/code/_posts/2008-12-24-closures.md게시물은 ['work', 'code']로 설정
YAML 머리말에서도 설정 가능
page.tags 포스트가 속한 태그 목록
YAML 머리말에서도 설정 가능
page.path 포스트 혹은 페이지의 실제 경로
YAML 머리말에서 비활성화 가능
page.next site.posts에서 현재 포스트를 기준으로 한 다음 포스트
맨 끝 포스트에선 nil을 반환
page.previous site.posts에서 현재 포스트를 기준으로 한 이전 포스트
맨 처음 포스트에선 nil을 반환

페이지 처리(Paginator)

변수 설명
paginator.per_page 페이지당 포스트 수
paginator.posts 해당 페이지에서 사용가능한 포스트들
paginator.total_posts 총 포스트 수
paginator.total_pages 총 페이지 수
paginator.page 현재 페이지의 번호
paginator.previous_page 이전 페이지의 번호
paginator.previous_page_path 이전 페이지의 경로
paginator.next_page 다음 페이지의 번호
paginator.next_page_path 다음 페이지의 경로

참고 Paginator 변수의 유효성
Paginator는 index.html에서 사용할 수 있다.
물론 /blog/index.html같은 하위 디렉토리의 index.html에서도 사용할 수 있다.