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

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

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

$ gem update jekyll
뛰어들기

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

site.collections 변화

버전 2.x 에서는, site.collections 을 사용하여 첫 번째 아이템으로 콜렉션 레이블, 두 번째 아이템으로 콜렉션 객체를 가진 배열을 얻을 수 있었습니다. 버전 3.x 에서는, 이런 복잡함을 제거하여 단순하게 콜렉션 객체를 얻을 수 있습니다. 따라서, 템플릿에 약간의 수정이 필요합니다:

  • collection[0]collection.label
  • collection[1]collection 으로

site.collections 를 사용할 때, 위와 같이 수정했는지 확인 바랍니다.

일부 의존요소 제거

Core Team 이 판단하기에 필수가 아닌 여러 의존요소들을 제거했습니다. 따라서 이 기능들을 사용중이었다면, v3.0 에서는 별도로 직접 설치해야 합니다. 그 기능들은 다음과 같습니다:

  • jekyll-paginate – 과거 버전에 있었던 Jekyll 페이지 나누기 기능
  • jekyll-coffeescript – CoffeeScript 처리
  • jekyll-gist – gist Liquid 태그
  • pygments.rb – Pygments 강조 기능
  • redcarpet – Markdown 처리기
  • toml – 환경설정 YAML 을 대체하는 기능
  • classifier-reborn – site.related_posts 기능

Future posts

2.x 에서는 --future 플래그가 자동적으로 _활성화_되어 있던 문제가 있었습니다. future 플래그는 포스트 작성자가 현재 이후의 시간을 포스트에 할당하여 해당 시점에 도달하기 전까지 포스트가 게시되지 않도록 해주는 기능입니다. Jekyll 3 에서는 이 기능을 수정하였습니다. 지금부터, --future 는 비활성화되어 있는 것이 디폴트입니다. 따라서, jekyll buildjekyll serve 를 실행할 때 미리 작성한 포스트가 생성되게 하려면 --future 를 사용해야 합니다.

레이아웃 메타데이터

layout 을 소개합니다. Jekyll 2 와 그 이전 버전에서는, 레이아웃의 모든 메타데이터가 Liquid 변수인 page 에 들어가 있었습니다. 이는 데이터 통합에 많은 혼란과 의도치 않은 결과를 일으켰습니다. Jekyll 3 에서 레이아웃 데이터에 접근하기 위한 Liquid 변수는 layout 입니다. 예를 들어, 레이아웃의 YAML 머리말에 class: my-layout 이 있다면, 레이아웃에서는 {{ layout.class }} 로 이 값을 사용할 수 있습니다.

구문 강조기 변경

highlight 태그와 백틱 문자 코드 블록에 대한 디폴트 구문 강조기가 처음으로 바뀌었습니다. 이제부터는, [Pygments.rb][] 대신 [Rouge][] 를 사용합니다. highlight 태그에 사용하던 몇몇 옵션, 예를 들면 hl_lines, 들은 Rouge 에서 작동하지 않을 수도 있습니다. 계속해서 Pygments 를 사용하고자 한다면, _config.yml 파일에 highlighter: pygments 를 설정한 후에, gem install pygments.rb 를 실행하거나 프로젝트의 Gemfilegem 'pygments.rb' 를 추가하세요.