Windows で Jekyll 1.3 を動かすまでの手順

Jekyll を Windows で動かそうとすると、いくつか難関がある。今回、自分の環境を新しく作り直したキッカケがあったので、導入までの手順をメモしておく。

自分の環境は Windows 8 Pro x64。各種ツールのバージョンは次の通り。

  • Jekyll 1.3.0
  • Ruby 2.0.0 p247
  • DevKit 4.7.2-20130224-1432
  • Python 2.7.6
  • Pygentize 1.6

基本的には Running Jekyll on Windows – Madhur Ahuja の手順に近いけど、Pygments の導入手順などは少し違っているのと、日本語独自の問題についても書いている。

1. Ruby 環境を整備する

RubyInstaller for Windows から One-Click Ruby のインストーラーと Development Kit を導入する。

Development Kit はネイティブな gem の導入に必要。

今回導入したのは次のバージョン。

  • Ruby 2.0.0-p247 (rubyinstaller-2.0.0-p247-x64.exe)
  • DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

Ruby インストーラーの実行

まず、Ruby のインストーラーを導入する。デフォルトで C:\Ruby200-x64 にインストールされる。

環境変数の PATHC:\Ruby200-x64\bin を追加しておこう。

DevKit の導入

DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe を実行すると、展開先を聞かれる。ここでは C:\RubyDevKit を選択した。

次に設定する。コマンドプロンプトで dk.rbinitinitialize を実行する。

c:\RubyDevKit>ruby dk.rb init
[INFO] found RubyInstaller v2.0.0 at C:/Ruby200-x64

Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

c:\RubyDevKit>ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby200-x64'
[INFO] Installing 'C:/Ruby200-x64/lib/ruby/site_ruby/devkit.rb'

ここまでで Ruby のセットアップは完了。

2. Jekyll を導入する

コマンドプロンプトから gem install jekyll を実行する。

次の gem が導入される。

  • classifier-1.3.3
  • colorator-0.1
  • commander-4.1.5
  • fast-stemmer-1.0.2
  • ffi-1.9.3-x64-mingw32
  • highline-1.6.20
  • jekyll-1.3.0
  • liquid-2.5.4
  • listen-1.3.1
  • maruku-0.6.1
  • posix-spawn-0.3.6
  • pygments.rb-0.5.4
  • rake-0.9.6
  • rb-fsevent-0.9.3
  • rb-inotify-0.9.2
  • rb-kqueue-0.2.0
  • rdoc-4.0.0
  • redcarpet-2.3.0
  • safe_yaml-0.9.7
  • syntax-1.0.0
  • test-unit-2.0.0.0
  • yajl-ruby-1.1.0

pygments.rb のダウングレード

悲しいことに、pygments.rb の 0.5.1 以降は Windows では動作しない。(pygments.rb #90 で Pull Request が出ているが、執筆時点でマージされていない)

そのため、導入された pygments.rb をアンインストールして、0.5.0 を入れなおしておく。「Jekyll が依存してる」と文句いわれるけど、気にせずに作業しちゃう。

> gem uninstall pygments.rb --version ">0.5.0"
> gem install pygments.rb --version "=0.5.0"

UTF-8 対策

HTML や記事に日本語が含まれると、Jekyll の実行時に次のようなエラーが出る。

Liquid Exception: invalid byte sequence in Windows-31J in post.md/#excerpt
error: invalid byte sequence in Windows-31J. Use --trace to view backtrace

Windows Ruby にありがちな FAQ で、ググると色々出てくる。

set LANG=ja_JP.UTF-8 するとよい、と書いてある記事もあったが Ruby 2.0 では効かないらしい。

Ruby 2.0 では環境変数の RUBYOPT-EUTF-8 にしておけば解決した (参考: WindowsでEncoding.default_externalをUTF-8にするには - すがブロ)。

環境変数をいじるのが面倒なら、C:\Ruby200-x64\bin\jekyll.bat の 2 行目あたりに set RUBYOPT=-EUTF-8 と書いてもいい。

もしくは、C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\jekyll-1.3.0\bin\jekyll の冒頭 2 行目に

Encoding.default_external = "utf-8"

を追加して回避してもよいだろう。(改行コードが LF のみなので、メモ帳では追加できない点に注意)

3. Pygments を導入する

コードのハイライトを行うためには Pygments を導入する。

Python 2.7

Download Python から 2.7 をダウンロードする。今回導入したのは Python 2.7.6 Windows X86-64 Installer (python-2.7.6.amd64.msi)。

インストーラーを実行してデフォルトの設定でインストールする。インストール先は C:\Python27 となる。

環境変数の PATHC:\Python27C:\Python27\Scripts を追加しておく (Scripts フォルダーはこのあと自動で作成される)。

easy_install

次に、setuptools から ez_setup.py をダウンロードする。

ez_setup.py を実行する。

> python easy_install.py
   :
Installing easy_install-script.py script to C:\Python27\Scripts
Installing easy_install.exe script to C:\Python27\Scripts
Installing easy_install-2.7-script.py script to C:\Python27\Scripts
Installing easy_install-2.7.exe script to C:\Python27\Scripts

Installed c:\python27\lib\site-packages\setuptools-1.3.2-py2.7.egg
Processing dependencies for setuptools==1.3.2
Finished processing dependencies for setuptools==1.3.2

Pygments

いよいよ Pygments をインストール!

easy_install pygments を実行すればよい。

> easy_install pygments
   :
Adding Pygments 1.6 to easy-install.pth file
Installing pygmentize-script.py script to C:\Python27\Scripts
Installing pygmentize.exe script to C:\Python27\Scripts

Installed c:\python27\lib\site-packages\pygments-1.6-py2.7.egg
Processing dependencies for pygments
Finished processing dependencies for pygments

4. Jekyll が動くか確認する!

ここまでくれば導入は完了したはず。動作するかテストしてみよう。

>jekyll new jekyll-test
New jekyll site installed in path/to/jekyll-test.

>cd jekyll-test

>jekyll serve
Configuration file: path/to/test-site/_config.yml
            Source: path/to/test-site
       Destination: path/to/test-site/_site
      Generating... done.
    Server address: http://0.0.0.0:4000
  Server running... press ctrl-c to stop.

http://localhost:4000/ を開いて結果が出力されていれば成功。

お疲れ様。