0.x 에서 2.x 로 업그레이드

Jekyll 을 업그레이드 하려고요? 먼저, 1.0 와 2.0 에서 바뀐 점을 몇 가지 알아두어야 합니다.

변경내용을 살펴보기 전에, 먼저 Jekyll 을 최신 버전으로 업그레이드 하세요:

$ gem update jekyll
뛰어들기

당장 Jekyll 사이트를 만들어보고 싶다고요? 그냥 jekyll new 사이트이름 을 실행하기만 하면 Jekyll 사이트의 골격이 담긴 새 디렉토리가 만들어집니다.

Jekyll 명령어

모호함을 피하기 위해, Jekyll 은 이제 buildserve 명령을 제공합니다. 이전까지는 단순히 jekyll 명령어를 실행해서 사이트를 생성하고 jekyll --server 로 미리보기를 했었지만, v2.0 (과 그 이후 버전) 에서는 사이트를 생성하고 미리보기 하기 위해 각각 jekyll buildjekyll serve 라는 세부 명령을 사용해야 합니다.

미리보기와 감시

새로운 세부 명령어로 인하여, 사이트를 미리보기하는 방식이 약간 변경되었습니다. 사이트의 환경설정 파일에 server: true 를 추가하는 대신, jekyll serve 를 사용하세요. watch: true 설정도 마찬가지입니다. 이제부터는 jekyll servejekyll build 명령에 --watch 플래그를 사용하세요.

절대적 고유주소

Jekyll v1.0 에서, 하위 디렉토리의 페이지에 대한 절대적 고유주소 기능을 소개했었습니다. v2.0 부터, 절대적 고유주소 기능은 옵트-아웃되었으며, 이는 Jekyll 이 상대적 고유주소 대신 절대적 고유주소를 디폴트로 사용한다는 뜻입니다. 상대적 고유주소에 대한 하위-호환성은 v3.0 에서 제거되었습니다.

초안

이제 Jekyll 에서 초안 작성이 가능하며, 게시했을 때의 모습을 쉽게 미리보기 할 수 있습니다. 초안을 사용하려면, Site Source 디렉토리 (예, _posts 와 같은 위치) 에 _drafts 라는 이름의 디렉토리를 만들고, 새 마크다운 파일을 넣으면 됩니다. 이 새 포스트를 미리보기 하려면 jekyll serve 명령을 --drafts 플래그와 함께 실행하세요.

초안에는 날짜가 없습니다

포스트와는 다르게, 초안은 아직 게시하지 않는 글이기 때문에, 날짜를 갖고 있지 않습니다. 초안 파일의 이름을 지을 때는 2013-07-01-my-draft-post.md 가 아니라, my-draft-post.md 처럼, 실제 포스트의 제목만을 사용해서 만들어야 합니다.

사용자 환경설정 파일

명령행에서 여러 플래그들을 각각 지정하는 대신, 자신만의 Jekyll 환경설정 파일을 별도로 만들어 사용할 수 있습니다. 환경별로 다른 설정을 분리하여 사용하거나 프로그램 상에서 디폴트값을 덮어쓰는데 유용합니다. jekyll 명령에 --config 플래그를 추가하고, 그 뒤에 하나 또는 그 이상의 환경설정 파일 경로를 지정하기만 하면 됩니다 (쉼표로 구분, 공백 없음).

그 결과로, 다음 플래그들은 더 이상 사용하지 않는 것을 권장합니다:

  • --no-server
  • --no-auto (이제부터는 --no-watch)
  • --auto (이제부터는 --watch)
  • --server
  • --url=
  • --maruku--rdiscount, --redcarpet
  • --pygments
  • --permalink=
  • --paginate
config 플래그는 환경설정 파일(들)을 명시적으로 지정합니다

--config 플래그를 사용하면, _config.yml 파일이 자동으로 읽히지 않습니다. 별도로 만든 환경설정 파일과 기본 환경설정 파일을 함께 사용하고 싶다고요? 가능합니다. 하나 이상의 환경설정 파일을 Jekyll 에 전달할 수 있습니다. 환경설정 파일은 오른쪽에서 왼쪽으로 단계적으로 적용되는데, 만약 jekyll serve --config _config.yml,_config-dev.yml 이라고 실행하고 두 파일에 동일한 키가 들어있을 경우, 오른쪽 환경설정 파일 (_config-dev.yml) 의 값이 왼쪽의 설정파일 (_config.yml) 값을 덮어쓰게 됩니다.

새로운 환경설정 파일 옵션

Jekyll 1.0 에서 몇 가지 새 환경설정 파일 옵션을 소개했었습니다. 업그레이드 하기 전에, 1.0 이전 버전의 환경설정 파일에 아래 옵션들을 사용하고 있는지 확인해야 합니다. 만약 사용중이라면, 사용법이 올바른지 확인하세요:

  • excerpt_separator
  • host
  • include
  • keep_files
  • layouts
  • show_drafts
  • timezone
  • url

Baseurl

종종 여러가지 환경에서 Jekyll 을 사용해야 할 경우가 있습니다. 예를 들면, GitHub Pages 에 푸쉬 하기 전에 로컬에서 미리보기 하는 경우입니다. 이것을 손쉽게 돕기 위하여 Jekyll 1.0 에서 --baseurl 플래그가 추가되었습니다. 이 기능을 활용하려면, 일단 _config.yml 파일에 운영환경의 baseurl 을 추가합니다. 그 다음, 사이트에 사용된 모든 상대경로 앞에 {{ site.baseurl }} 을 추가합니다. 이제 미리보기를 할 때에는 jekyll serve 명령을 실행하면서 --baseurl 플래그와 함께 로컬의 baseurl (대부분의 경우 /) 을 입력합니다. Jekyll 은 입력된 값을 baseurl 로 사용할 것입니다. 이렇게 하면 모든 링크가 양쪽 환경 모두에서 원하는대로 작동할 것입니다.

페이지와 포스트 URL 은 모두 슬래시로 시작합니다

위에 설명된 방법을 사용할 경우, 모든 포스트와 페이지의 URL 앞에는 슬래시가 붙어있다는 것을 기억하시기 바랍니다. 따라서, site.baseurl = / 이고 post.url = /2013/06/05/my-fun-post/ 인 경우를 예로 들어보면, 사이트의 baseurl 과 포스트/페이지 URL 이 합쳐지면 앞에 두 개의 슬래시가 연달아 나오게 되며, 이는 올바르게 링크되지 않습니다. 따라서 URL 앞에 site.baseurl 을 추가하는 것은 baseurl/ 가 아닐 경우에만 사용하기 바랍니다.