アップグレード
Jekyllの古いバージョンからのアップグレードですね?関心があると思われるいくつかの事項が1.0で変更されました。
作業に入る前に、まずはJekyllの最新版を取得します。
$ gem update jekyll
始めてみる
最新のJekyllサイトを直ぐに立ち上げたいですか?それなら単にjekyll new SITENAME
を実行すれば、最低限のJekyllサイトを備えた新しいフォルダが得られます。
Jekyllコマンド
より明確にする目的で、Jekyllはbuild
とserve
というコマンドを受けるようになりました。以前は、サイトを生成するのに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
を設定します。
絶対パーマリンクはv2.0からデフォルトに
Jekyllのv2.0以降、relative_permalinks
はデフォルトでfalse
になります。つまり、すべてのページは絶対パーマリンクに基づき構築されます。
この設定項目はv2.0までは存在します。
下書き投稿(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
がデフォルトの/
以外のものである場合だけにすることをお薦めします。