0.x から 2.x へのアップグレード

古いバージョンの Jekyll からアップグレードしますか? 1.0 と 2.0 ではいくつかの変更点があり、知っておく必要があります。

始める前に、Jekyll の最新バージョンを取得してください

gem update jekyll
さっそく始めましょう

新しい Jekyll サイトを迅速に立ち上げたいですか? 単に jekyll new SITENAME を実行して、必要最小限の Jekyll サイトが入った新しいフォルダを作成してください。

Jekyll コマンド

より明確にするために、Jekyll は buildserve のコマンドを受け入れるようになりました。以前はサイトを生成するために単にコマンド jekyll を実行し、ローカルで表示するために jekyll --server を実行していたかもしれませんが、v2.0(以降)では、サイトをビルドしてプレビューするためにサブコマンド jekyll build および jekyll serve を使用する必要があります。

監視と提供

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

Jekyll v1.0 では、サブディレクトリ内のページの絶対パーマリンクを導入しました。 v2.0 からは、絶対パーマリンクはオプトアウトです。つまり、Jekyll は相対パーマリンクの代わりに絶対パーマリンクをデフォルトで使用します。相対パーマリンクの後方互換性は v3.0 で削除されました。

ドラフト記事

Jekyll ではドラフト記事を書くことができ、公開前にどのように表示されるかを簡単にプレビューできます。ドラフトを開始するには、サイトのソースディレクトリ(たとえば、_posts の横)に _drafts という名前のフォルダを作成し、その中に新しい markdown ファイルを追加します。新しい投稿をプレビューするには、--drafts フラグを指定して jekyll serve コマンドを実行します。

ドラフトには日付がありません

投稿とは異なり、ドラフトはまだ公開されていないため日付がありません。ドラフトの名前を 2013-07-01-my-draft-post.md のようにするのではなく、投稿の最終的なタイトルにしたい名前を付けます。ここでは my-draft-post.md にします。

カスタム設定ファイル

コマンドラインで個々のフラグを渡すのではなく、カスタムの Jekyll 設定ファイル全体を渡せるようになりました。これにより、環境を区別したり、ユーザー指定のデフォルトをプログラムで上書きしたりできます。 jekyll コマンドに --config フラグを追加し、その後に 1 つまたは複数の設定ファイルへのパス(カンマ区切り、スペースなし)を追加します。

その結果、次のコマンドラインフラグは非推奨になりました

  • --no-server
  • --no-auto (現在は --no-watch
  • --auto (現在は --watch
  • --server
  • --url=
  • --maruku--rdiscount、および --redcarpet
  • --pygments
  • --permalink=
  • --paginate
config フラグは設定ファイルを明示的に指定します

--config フラグを使用すると、Jekyll は _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

多くの場合、GitHub Pages にプッシュする前にローカルでプレビューするなど、複数の場所で Jekyll サイトを実行できるようにしたいでしょう。 Jekyll 1.0 では、新しい --baseurl フラグを使用することで、それが簡単になります。この機能を利用するには、まず、本番環境の baseurl をサイトの _config.yml ファイルに追加します。次に、サイト全体で、相対 URL の前に {{ site.baseurl }} を付けます。サイトをローカルでプレビューする準備ができたら、ローカル baseurl(おそらく /)を使用して --baseurl フラグを jekyll serve に渡すと、Jekyll は渡されたものを代入し、両方の環境でリンクが期待どおりに機能するようにします。

すべてのページと投稿の URL には先頭にスラッシュが含まれています

上記の方法を使用する場合は、すべての投稿とページの URL には先頭にスラッシュが含まれていることを覚えておいてください。したがって、site.baseurl = / および post.url = /2013/06/05/my-fun-post/ の場合にサイトの baseurl と投稿/ページの URL を連結すると、先頭に 2 つのスラッシュが付き、リンクが壊れます。したがって、baseurl がデフォルトの / 以外の場合にのみ、site.baseurl を先頭に付けることが推奨されます。