0.xから2.xへのアップグレード
Jekyllの古いバージョンからのアップグレードですか? 知っておいた方がいい変更点が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
のサブコマンドを使用します。
Watching と Serving
新しいサブコマンドで、サイトのローカルプレビューの方法が少し変わりました。サイトの設定ファイルでserver: true
を指定する代わりにjekyll serve
を使用します。watch: true
も同様です。代わりにjekyll serve
やjekyll build
に--watch
フラグを使用します。
絶対パーマリンク
Jekyll v1.0では、サブディレクトリのページに絶対パーマリンクを導入しました。v2.0以降、絶対パーマリンクはオプトアウトされています。つまり、Jekyllはデフォルトで相対パーマリンクではなく絶対パーマリンクを使用します。相対パーマリンク後方互換性はv3.0で削除されました。
絶対パーマリンクはv3.0以降必要です
Jekyll v3.0から、相対パーマリンク機能は削除され、使用できなくなります。
<!– Starting with Jekyll v3.0, relative permalinks functionality will be removed and thus unavailable for use.
-->ドラフトポスト
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
をプレフィックスとして使用することをお勧めします。