0.環境
[CentOS] 5.6 (32bit版カーネル)
[ruby] 2.1.1p76
[rvm] 1.25.25
[jekyll] 0.11.2 => 1.0.2
1.インストール 参考ページ
インストール
本ブログはjekyll 0.11.2で作成してきましたが、別件でrubyのバージョンを上げたことでjekyllが動か
なくなってしまったため、思い切って1.0.2への移行を行いました。初期インストールの内容
いくつかハマった点を共有します。
まず、複数バージョンのrubyを使いたかったので下記ページに沿ってrvmをインストール。
rootで実行したためか /usr/local/rvm にインストールされたので、上記記事内のパスは読み替えました。
ruby 2.1.1をインストール。
# rvm install 2.1.1 # rvm use 2.1.1
適当な場所にGemfileを作成し、jekyllを追記してインストール開始。
# bundle init # echo "gem 'jekyll', '1.0.2'" >> Gemfile # bundle install
インストールされたことを確認します。
# gem list|grep jekyll jekyll (1.0.2) jekyll-coffeescript (1.0.0) jekyll-sass-converter (1.0.0)
起動
任意の場所へ移動し、bootstrapをダウンロードします。bootstrapクイックスタート
(前バージョンとは別の場所にしました)
# cd /var/www/html/jekyll2/ # git clone https://github.com/plusjade/jekyll-bootstrap.git # cd jekyll-bootstrap # jekyll serve --watch
2.引越し
ファイルコピー
前バージョンの設定ファイルや記事を新バージョンへコピーします。
(自分の環境に合わせて必要なものをコピーして下さい)
(1) diffを確認しながら部分ごとコピー
index.md _config.yml categories.html tags.html pages.html archive.html 404.html
(2) ディレクトリ単位で上書きコピー
_includes/JB _includes/themes/twitter _layouts _posts assets
動かない①
_posts 内でサンプルコードとして下記の記述があると、jekyllが停止してしまいました。
<?php
原因が分からなかったので、gistにコード部分をアップしjekyllで読み込ませることにしました。
gistは下記のように記述する必要があります。(【】 内は読み替え)
{% raw %} {% gist 【gistのID】 【ファイル名】 %} {% endraw %}
ところが、gistのIDにアルファベットが含まれるのに、jekyll側は数字のみしか対応していなか
ったためローカルjekyllの下記箇所を修正しました。(jekyll 1.x系の最新(1.4)では直ってました)
・ソース
/usr/local/rvm/gems/ruby-2.1.1/gems/jekyll-1.0.2/lib/jekyll/tags/gist.rb
・修正内容 (IDにアルファベットを許可)
# diff gist.rb.org gist.rb 10c10 < if tag_contents = @markup.strip.match(/\A(\d+) ?(\S*)\Z/) --- > if tag_contents = @markup.strip.match(/\A([0-9a-fA-F]+) ?(\S*)\Z/)
動かない②
新旧の記事ページの比較をしていたところ、URLが違うことに気付きました。
前バージョンだと _posts 内の記事のヘッダ部分で定義するカテゴリに大文字を使っている場合、
_site に生成されるディレクトリもそのまま大文字になります。
category : Jekyll
ところが、新バージョンだと全部小文字に変換され、下記の差が出てしまいます。
(前バージョン) http://localhost:4000/Jekyll/2014/05/18/jekyll_version_up/ (新バージョン) http://localhost:4000/jekyll/2014/05/18/jekyll_version_up/
一度インターネットに公開したURLが変わるのは困ります…
仕方がないので、ローカルのjekyllソースを下記のように修正しました。
・ソース
/usr/local/rvm/gems/ruby-2.1.1/gems/jekyll-1.0.2/lib/jekyll/post.rb
・修正内容 (小文字変換を削除)
# diff post.rb.org post.rb 79c79 < self.categories = self.data.pluralized_array('category', 'categories').map {|c| c.to_s.downcase} --- > self.categories = self.data.pluralized_array('category', 'categories').map {|c| c.to_s}
参考ページ