Jekyllをアップグレードしました(前編)

  • 30 Aug 2014

気付いたらJekyllが2.3になっていまして。ローカルが1.4のままだったのでアップグレードしました。結構仕様も変わっているようなのでメモがてら記録を残しておきます。なんで気づかなかったんだろう・・・。

環境

  • Windows8 64bit
  • Ruby Ver.1.9.3
  • Jekyll Ver.1.4.2

アップグレード内容確認する

Jekyll公式サイト内のUpgradingのページからアップグレードの内容を確認します。大雑把には以下。

  • serveとwatchが同時にできるようになったよ
  • permalinkの仕様変わってabsolute linkrelative linkっていうのになったよ
  • draft使えるようになったよ(これは前からあったような・・)
  • custom config file使えるようになったから、コマンドラインのオプションのいくつかはもう要らないよ

アップグレードしてみる

$ gem update jekyll

特に何事もなく終了。

$ jekyll -v
jekyll 2.3.0

ふむ。

試しに立ち上げてみる

$ jekyll serve --drafts

Warning出ました。

Build Warning: Layout 'nil' requested in sitemap.xml does not exist.
                    done.
Auto-regeneration: disabled. Use --watch to enable.

sitemap.xmlnilってテンプレート呼んでるけどそんなのないよ、と。今まではテンプレートでnilを指定すると、それは'''テンプレートを利用しない'''設定だったのですが、仕様変わったんですね。調べてみたらnilじゃなくて#でいけるよ、ということなのでsitemap.xmlのlayoutlayout: #に変更で無事に通りました。

watch付で立ち上げなおしてみる

v2.0からjekyll serve--watchオプションを付与できるそうなのでそちらを利用してみます。

$ jekyll serve --watch --drafts
Configuration file: C:/----------/wwld.jp/_config.yml
            Source: C:/----------/wwld.jp
       Destination: C:/----------/wwld.jp/_site
      Generating...
                    done.
$

上手くいきません。--traceでエラーを見ようかと思いましたが、特にエラーは出てない。ちょっと調べたら以下のページがヒット。

Github : "--watch is not watching for changes"

そこでparkrがbundle exec jekyll serve --watchをやってみてとあったので実行します。parkrありがとう。

$ bundle exec jekyll serve --watch
(省略)
Please add the following to your Gemfile to avoid polling for changes:
require 'rbconfig'
if RbConfig::CONFIG['target_os'] =~ /mswin|mingw|cygwin/i
  gem 'wdm', '>= 0.1.0'
end
(省略)

Gemfileにwdm入れてねって言っているあたり、これが足りないかもなぁと。wdmはWindosのディレクトリをモニタリングするGemです。よくよく考えたらJekyllはWindowsをサポートしていない、こういった事態もあるか。と思いながら調べてたら、公式サイトに以下のページが。

Jekyll on Windows

なんだ、ちゃんと解説ページ作ってくれてたんですね。嬉しい限りです。 で、曰く「Jekyll running on Windowsにまとまっているよ、との事。たらい回し。

Jekyll running on Windows

読む限り、このサイトにもwdmインストールするように指示があったので間違いなさそうです。

$ gem install wdm

特に問題なくインストール成功。 さてjekyll serve --watchしてみます。

$ jekyll serve --watch --drafts

でもダメ・・。うーん、仕方ないので(上手くいくか解りませんが)Rubyのバージョンをあげてみます(続く)。

Jekyllをアップグレードしました(後編)

ちなみに

今までどうやってJekyll使ってたの?という疑問が湧くかもしれませんので念のため書き添えておくと、JekyllのbuildはGruntからやっていました。 Grunt watchからjekyll buildのコマンドを叩く感じです。詳細は以下でご確認ください。

JekyllとCompassをGruntでwatchする