반복적으로 사용하는 변수의 경우에는 [_config.yml]에 [defaluts]키를 사용하여 사이트 전체에 사용되는 기본 값을 정의 할 수있다.
defaults:
-
scope:
path: "" # 이 빈 문자열은 프로젝트의 모든 파일을 의미함
type: "posts" # 이전 Jekyll 2.2 에서는 `post`
values:
layout: "default"
-
scope:
path: "projects"
type: "pages" # 이전 Jekyll 2.2 에서는 `page`
values:
layout: "project" # 이전 디폴트 레이아웃 설정을 덮어씀
author: "Mr. Hyde"
collections:
my_collection:
output: true
defaults:
-
scope:
path: ""
type: "my_collection" # 사이트의 컬렉션"들"
values:
layout: "default"
my_collection 이라는 컬렉션 안에서는 layout이 default로 설정된다.
각각의 md파일애 머릿말을 추가할 때는 제일 상부에 작성한다.
---
머릿말
---
머릿말 부분에 작성되는 내용은 md파일 내에서 반복적으로 사용할 변수명과 값을 설정한다.
변수에는 사용자가 임의의 변수명을 지정해서 사용하는 사용자 정의 변수와 이미 지정되어 있는 전역 변수를 사용하는 방법이 있다.
사용자 정의 변수는 [test : value] 와 같이 작성한다.
변수명은 test, 변수의 값은 value로 설정되며, 본문 부분에서 {{ page.test }} 로 사용한다.
전역 변수는 다양하게 존재하는데 그중에 몇 가지 변수에 대해서 작성한다.
포스트 전용 전역 변수
포스트등을 페이징 처리
_config.yml에 아래의 내용을 추가
plugins:
- jekyll-paginate
_config.yml에 아래의 내용을 추가
한 페이지 당 표시하고자 하는 포스트의 최대 개수를 입력
paginate : 5
이렇게 나뉘어진 페이지가 생성될 위치도 지정할 수 있다.
paginate_path : "/blog/page:num/"
이 설정은 blog/index.html에서 사용되어, 나뉘어진 각 페이지는 paginaator라는 Liquid로 받게 되며 결과물은 blog/page:num에 만들어 진다.
페이지 나누기 플러그인이 제공하는 Liquid객체 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 |
변수 | 설명 |
site.time | 현재 시간 |
site.pages | 모든 페이지 목록 |
site.posts | 시간 역순의 모든 포스트 목록 |
site.related_posts | 처리중인 파일이 포스트인 경우 : 최대 10개의 연관 포스트 목록이 할당된다. |
site.static_files | 정적 파일의 정적 파일들 |
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 이라는 내용이 있으면, site.url로 접근 가능하다. 개발환경에서 jekyll serve를 실행하면 host와 port, SSL관련 옵션으로 설정. 기본값 url:http://localhost:4000 |
site.[CONFIGURATION_DATA] | _config.yml에 설정한 변수를 사용가능하다. foo : bar가 있다면 site.foo 로 사용가능하다. |
변수 | 설명 |
page.content | 페이지의 컨텐츠 |
page.title | 페이지의 제목 |
page.excerpt | 랟더링 되지 않은, 문서의 발췌 부분 |
page.url | 도메인을 제외하고 슬래시(/) 문자로 시작하는 포스트 URL |
page.date | 포스트에 할당된 날짜 포스트의 머리말에 YYYY-MM-DD HH:MM;SS +/-TTTT 로 덮어쓸수있다. |
page.id | 포스트나 콜렉션의 문서에 대한 유일한 식별자 |
page.categories | 포스트가 속한 카테고리들의 목록. _posts 디렉토리의 상위 디렉토리 구조가 카테고리를 결정한다. 경로가 /work/code/_posts/2008-12-24-closures.md 인 포스트에서는 이 변수가 ['work', 'code'] 로 설정되어 있다. |
page.collection | 이 문서가 속한 컬렉션의 레이블 |
page.tags | 포스트에 붙어있는 태그 목록 |
page.dir | 디렉토리와 게시물 또는 페이지 파일 사이의 경로 |
page.name | 게시물 또는 페이지의 파일이름 |
page.path | 페이지 또는 포스트의 실제 경로. |
page.next | site.posts의 포스트중에서 현재 포스트 위치를 기준으로 한 다음 포스트의 상대 경로. 마지막 항목이라면 nil을 반환 |
page.previous | site.posts의 포스트중에서 현재 포스트 위치를 기준으로 한 이전 포스트의 상대 경로. 첫 번째 항목이라면 nil을 반환 |