컨텐츠 - (6) 변수(Variables)
본 카테고리는 정적 블로그 생성도구인 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에서도 사용할 수 있다.
