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までの課題とします。