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をインストール。

    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}
    
  • 参考ページ

    Jekyll Version 1.0

    Jekyllを理解する

    jekyllとjekyll-bootstrapで静的サイトを作る