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

Jekyllの古いバージョンからのアップグレードですか? 知っておいた方がいい変更点が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のサブコマンドを使用します。

Watching と Serving

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

絶対パーマリンク

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

ドラフトポスト

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

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

ポストと違い、ドラフトには公開されるまで日付はありません。ドラフトには2013-07-01-my-draft-post.mdの様な名前ではなく、単にポストのタイトルになる部分だけで名付けます。この場合はmy-draft-post.mdです。 Rather than naming your draft something like

カスタム設定ファイル

コマンドラインから個々のフラグを渡すのではなく、カスタムのJekyll設定ファイルから全体を渡すことができます。これは環境を区別するのに役立ちますし、またはユーザー指定のデフォルトをプログラム的にオーバーライドすることを可能にします。jekyllコマンドに--configフラグを追加し、その後に1つ以上の設定ファイルへのパスを続けます(カンマ区切り、スペースなし)。

その結果、以下のコマンドラインフラグが廃止予定となりました。

  • --no-server
  • --no-auto (now --no-watch)
  • --auto (now --watch)
  • --server
  • --url=
  • --maruku, --rdiscount, and --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ページにプッシュする前にローカルでプレビューするなど、Jekyllサイトを複数の場所で実行できるようにする必要があります。Jekyll 1.0は新しい--baseurlフラグでそれをより簡単にします。この機能を利用するには、まずサイトの_config.ymlファイルにbaseurl構成を追加します。次に、サイト全体で、相対URLの先頭に{{ site.baseurl }}を付けます。サイトをローカルでプレビューする準備ができたら、--baseurlフラグをローカルのbaseurl(多くは/)と一緒にjekyll serveに渡すと、Jekyllは全てを入れ替えるので、両方の環境でリンクがきちんと動くことが期待できます。

全てのページとポストのURLはスラッシュから始まります。

上記の方法を使用する場合は、全てのポストとページのURLの先頭にスラッシュが含まれていることを忘れないでください。そのため、site.baseurl = /post.url = /2013/06/05/my-fun-post/のように、サイトのbaseurlとポストやページのURLを連結すると、リンクが切れてしまいます。したがって、baseurlがデフォルトの/以外のものである場合にのみ、site.baseurlをプレフィックスとして使用することをお勧めします。