고유주소

Jekyll 은 아주 유연한 방식으로 사이트 URL 을 생성합니다. 환경설정을 통해서 사이트 전반적인 고유주소를 설정하거나 YAML 머리말로 각 포스트의 고유주소를 설정할 수 있습니다. Jekyll 에 내장된 스타일을 사용해도 되고 자신만의 스타일을 만들어도 됩니다. 디폴트 스타일은 date 입니다.

고유주소는 템플릿 URL 에 의해 구성되고, 템플릿 URL 은 동적 요소들로 이루어 지며, 동적 요소는 키워드 앞에 콜론을 붙여 나타냅니다. 예를 들어, 디폴트 고유주소인 date 의 형식은 /:categories/:year/:month/:day/:title.html 로 정의되어 있습니다.

템플릿 변수

변수 설명

year

파일명 기준, 포스트 게시 연도

month

파일명 기준, 포스트 게시 월

i_month

파일명 기준, 포스트 게시 월 (한 자리일 경우 앞에 0 이 없음)

day

파일명 기준, 포스트 게시 일자

i_day

파일명 기준, 포스트 게시 일자 (한 자리일 경우 앞에 0 이 없음)

short_year

파일명 기준, 포스트 게시 연도 (두 자리)

hour

파일명 기준, 포스트 게시 시간. 24 시간제, 두 자리 형식. (00..23)

minute

파일명 기준, 포스트 게시 분. (00..59)

second

파일명 기준, 포스트 게시 초. (00..60)

title

파일명 기준, 문서 제목. YAML 머리말의 slug 로 값을 덮어쓸 수 있다.

slug

파일명 기준, 슬러그화 한 문서 제목 (숫자와 글자가 아닌 모든 문자를 하이픈으로 변경함). YAML 머리말의 slug 로 값을 덮어쓸 수 있다.

categories

해당 포스트에 지정된 카테고리들. 만약 포스트가 여러 카테고리에 속해있다면, 계층 구조로 URL 이 생성된다 (예시. /category1/category2). 또한, Jekyll 은 URL 을 분석해서 연속된 슬래시를 자동으로 제거하기 때문에, 카테고리가 하나도 없으면, Jekyll 은 이 변수를 무시한다.

내장된 고유주소 스타일

템플릿 변수를 사용하여 고유주소 스타일을 지정할 수 있지만, 편의를 위해 Jekyll 에서 기본으로 제공하는 고유주소 스타일도 있다.

고유주소 스타일 URL 템플릿

date

/:categories/:year/:month/:day/:title.html

pretty

/:categories/:year/:month/:day/:title/

ordinal

/:categories/:year/:y_dat/:title.html

none

/:categories/:title.html

페이지와 콜렉션

환경설정 permalink 를 사용하면 포스트의 고유주소 스타일을 지정할 수 있습니다. 페이지와 콜렉션은 서로 다른 기본 고유주소 스타일을 가지고 있습니다; 페이지의 기본 스타일은 /:path/:basename 이고 콜렉션의 기본 스타일은 /:collection/:path 입니다.

이 스타일을 수정하여 포스트 고유주소의 접미 스타일을 조정할 수 있습니다. 예를 들어, 고유주소 스타일 pretty 는 끝부분에 슬래시를 갖고 있어서, 페이지 고유주소의 끝에도 슬래시를 추가합니다: /:path/:basename/. 고유주소 스타일 date 는 끝부분에 파일 확장자를 갖고 있어서, 페이지 고유주소의 끝에도 확장자를 추가합니다: /:path/:basename:output_ext. 사용자가 작성한 고유주소 스타일도 동일하게 작동합니다.

페이지나 문서의 YAML 머리말을 수정하여 언제든지 콜렉션 문서나 개별 페이지의 고유주소를 덮어쓸 수 있습니다. 또한, 특정 콜렉션의 고유주소는 콜렉션 환경설정에서도 변경할 수 있습니다.

고유주소 스타일 예시

포스트 이름: /2009-04-29-slap-chop.md

URL 템플릿 고유주소 URL 결과

설정하지 않음, 또는 permalink: date

/2009/04/29/slap-chop.html

pretty

/2009/04/29/slap-chop/

/:month-:day-:year/:title.html

/04-29-2009/slap-chop.html

/blog/:year/:month/:day/:title/

/blog/2009/04/29/slap-chop/

/:year/:month/:title

자세한 사항은 확장자 없는 고유주소를 참고하시오.

/2009/04/slap-chop

확장자 없는 고유주소

Jekyll 은 끝부분에 슬래시나 파일 확장자를 포함하지 않는 고유주소를 지원하지만, 올바르게 작동하려면 추가적으로 웹 서버의 지원을 필요로 합니다. 확장자 없는 고유주소를 사용할 때, 생성되는 사이트 파일은 여전히 파일 확장자를 가지고 있기 때문에 (일반적으로 .html), 확장자가 없는 요청을 이 파일들에 연결하는 작업을 웹 서버가 해줘야만 합니다.

Github Pages 와 Jekyll 에 내장되어 있는 WEBrick 서버는 추가 작업 없이 이러한 요청을 처리할 수 있습니다.

Apache

Apache 웹 서버는 컨텐츠 선택에 관련된 지원을 광범위하게 제공하며, httpd.conf 또는 .htaccess 파일에 multiviews 옵션을 설정해서 확장자 없는 URL 을 처리할 수 있습니다:

Options +MultiViews

Nginx

try_files 설정을 사용하면 요청을 처리할 때 검색할 파일들의 목록을 정의할 수 있습니다. 다음과 같이 환경설정을 하면, 요청받은 URI 에 해당하는 파일을 찾을 수 없는 경우 .html 확장자를 가진 파일을 검색합니다.

try_files $uri $uri.html $uri/ =404;