Blog upgrade once a year

昨年のGW中にOctopressのupgradeをしたのを最後にblogの更新をしなかったので、もう改めて手を入れる必要はないと思ったのですが、ふと思い立って今年のGWはJekyllを2→3にupgradeしました。

Docker

今まではVPSのdockerdにblog用のコンテナをホストしていましたが、blogを書くのにわざわざVPSのサーバにログインするのが面倒でした。今後はローカルPCで書けるように、blog用のdockerコンテナを自宅のPC上に持ってきました。Rubyの実行環境はそのままとし、Jekyllのバージョンを上げています。

Theme

Jekyll Themesを見たものの、これまで使っていたminimizedが無かったので、pooleというテーマをベースに作り直しました。githubのリポジトリをforkしてこれまでの分(_posts)をコピーし、

1jekyll serve --host=0.0.0.0

でpreviewしながら修正していきました。

Issues

昨年同様、updateする時に嵌ったことをいくつか。

Liquid Exception

Liquid Exception: Variable '(content)' was not properly terminated with regexp /\\}\\} 

前回のOctopress3へのupgradeの時にも出ていた、ブレース・ブレイス(波括弧)をliquidのタグと認識してしまう問題。前回はやむなく別の文字に置き換えましたが、今回はrawタグでLiquid Exceptionを回避できました。

code highlight

Jekyll3からはRougeでコードハイライトできますが、バッククォート3つでコードを囲むと行番号が表示されない為、全てのエントリでhighlightタグを使うように変更しました。

1{{ "{%" }} highlight sh linenos %}
2jekyll serve --host=0.0.0.0
3{{ "{%" }} endhighlight %}

今回はこれが大変でした。

blog archives

pooleのindex.htmlは記事一覧では無かったので、minimizedの時に使っていたindex.htmlを参照しながら、記事一覧のページを作成しました。

recreate repository

ファイルの構成が変わったので、masayuki038.github.ioのリポジトリは一旦削除し、新たに作り直しました。

Conclusion

今回はコンテナごと移動してしまった為、それだけで実行時間が短くなってしまい、Jekyll3自体のの実行速度の向上を感じることはできませんでした。また、blog用のコンテナに-vでディレクトリをマウントする形にした為に、blogエントリの更新がJekyll側でhookできておらず、まだちょっと面倒です。これは来年のGWまでの課題とします。