0.x から 2.x へのアップグレード
古いバージョンの Jekyll からアップグレードしますか? 1.0 と 2.0 ではいくつかの変更点があり、知っておく必要があります。
始める前に、Jekyll の最新バージョンを取得してください
gem update jekyll
さっそく始めましょう
新しい Jekyll サイトを迅速に立ち上げたいですか? 単に jekyll new SITENAME
を実行して、必要最小限の Jekyll サイトが入った新しいフォルダを作成してください。
Jekyll コマンド
より明確にするために、Jekyll は build
と serve
のコマンドを受け入れるようになりました。以前はサイトを生成するために単にコマンド 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 で削除されました。
絶対パーマリンクは v3.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
を先頭に付けることが推奨されます。