アップグレード

Jekyllの古いバージョンからのアップグレードですね?関心があると思われるいくつかの事項が1.0で変更されました。

作業に入る前に、まずはJekyllの最新版を取得します。

$ gem update jekyll
始めてみる

最新のJekyllサイトを直ぐに立ち上げたいですか?それなら単にjekyll new SITENAMEを実行すれば、最低限のJekyllサイトを備えた新しいフォルダが得られます。

Jekyllコマンド

より明確にする目的で、Jekyllはbuildserveというコマンドを受けるようになりました。以前は、サイトを生成するのにjekyllコマンドだけを実行し、ローカルでこれを見るのにjekyll --serverを実行していましたが、今度は同じことをするのに、jekyll buildおよびjekyll serveサブコマンドを使います。さらに、ファイルが変更されるたびにJekyllが自動で再構築をするようにしたいときは、--watchフラグをその最後に追加すればいいです。

watchフラグとserveサブコマンド

新たなサブコマンドにおいては、ローカルでサイトをプレビューする方法が少し変更されています。 サイトの設定ファイルにおいてserver: trueを指定する代わりに、jekyll serveを使います。watch: trueについても同様で、代わりに、jekyll serveおよびjekyll build--watchフラグを使います。

絶対パーマリンク

Jekyllのv1.0で、サブディレクトリ内のpageのための絶対パーマリンクが導入されましたが、これはv2.0まではオプトイン(その指定が必要)です。しかし、v2.0以降では、絶対パーマリンクはオプトアウトになります。つまり、Jekyllのデフォルトでは相対パーマリンクではなく、絶対パーマリンクを使うようになります。

  • 絶対パーマリンクを使用する場合は、設定ファイル内でrelative_permalinks: falseを設定します。
  • 引き続き相対パーマリンクを使う場合は、設定ファイル内でrelative_permalinks: trueを設定します。

下書き投稿(Draft Posts)

Jekyllで、下書き投稿ができるようになり、これによって公開前に簡単にその見た目をプレビューできます。下書きを始めるには、_draftsというフォルダをサイトのソースディレクトリに(つまり_postsと並んで)作り、そこに新たなmarkdownファイルを追加するだけです。この新しいpostをプレビューするには、jekyll serveコマンドを--draftsフラグ付きで実行すればいいです。

下書きは日付けを持たない

postと異なり、下書きは公開されていないものなので、日付けを持ちません。 下書きには、2013-07-01-my-draft-post.mdといったファイル名を付けるのではなく、最終的な投稿のタイトルになるようなファイル名(この例ではmy-draft-post.md)を付けます。

カスタム設定ファイル

コマンドラインを通して個々のフラグを渡すことに代えて、それらが揃ったカスタムJekyll設定ファイルを渡すことができるようになりました。これは、複数環境を区別したり、あるいはユーザ指定のデフォルトをプログラムで上書きしたりするときに役立ちます。--configフラグをjekyllコマンドに付加し、1または複数の設定ファイルをそれに続ければいいです(コンマ区切り、空白無し)。

以下のコマンドラインのフラグは非推奨となりました

  • --no-server
  • --no-auto
  • --auto (now --watch)
  • --server
  • --url=
  • --maruku, --rdiscount, and --redcarpet
  • --pygments
  • --permalink=
  • --paginate
設定フラグで設定ファイルを明示的に指定する

--configフラグを使うと、Jekyllは_config.ymlファイルを無視します。カスタム設定を通常の設定に統合したいですか?問題はありません。Jekyllはコマンドラインを通して、複数のカスタム設定ファイルを取ることができます。設定ファイルは、右から左に重ねられます。つまり仮に、jekyll serve --config _config.yml,_config-dev.ymlを実行した場合、これらの設定ファイルが同じキーを持っていたなら、右側の設定ファイル(_config-dev.yml)の値が、左側(_config.yml)の値を上書きします。

新しい設定ファイルのオプション

Jekyll1.0では、いくつかの新しい設定ファイルのオプションが導入されました。アップグレードの前に、以下に示すオプションがあなたの1.0以前の設定ファイルに存在しているかどうかを調べ、もし存在しているなら、それらが適切に使われているかを確認して下さい。

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

ベースURL(Baseurl)

Jekyllによるサイトを複数の場所で起動させる機能が欲しいことがよくあります(GitHub Pagesに公開する前にローカルでプレビューする場合など)。Jekyll1.0では、新たな--baseurlフラグでこれを簡単に実現できます。この機能を活かすには、最初にサイトの_config.ymlファイルに本番環境のbaseurlを追加します。そして、サイト全体にわたって相対URLに{{ site.baseurl }}を前置すればいいです。 サイトをローカルでプレビューする準備が整ったなら、jekyll serve--baseurlフラグをローカルのベースURL(通常は/)と共に渡せば、Jekyllは渡されたものに入れ替え、これにより双方の環境ですべてのリンクが期待通りに機能することを保証します。

すべてのpageおよびpostのURLは先頭にスラッシュを含む

上で説明した方法を使用する場合、すべてのpageおよびpostのURLは先頭にスラッシュを含んでいることを忘れないで下さい。よって、サイトのベースURLとpost/pageのURLを繋ぐとき、それらがsite.baseurl = /post.url = /2013/06/05/my-fun-post/であるなら、先頭スラッシュが2つ入ってしまう結果となり、リンクは間違ったものになるでしょう。そのため、site.baseurlに前置するのは、baseurlがデフォルトの/以外のものである場合だけにすることをお薦めします。