昨日あたりから突然、Github Pagesが更新されなくなりました。

以下のURLにアクセスしてリポジトリの設定を見てみると…

https://github.com/username/username.github.io/settings

以下のようなシンプルな説明だけが出ていました。

Your site is having problems building: Page build failed. For more information, see https://help.github.com/articles/troubleshooting-github-pages-builds/.

しかしそれ以上の情報が何も出ていません…・

ちなみに、ローカルのJekyllでは問題なく動いています。

もしかしてGithub Pagesで使われているJekyllのバージョンに変化があり、その影響でエラーが起きるようになったのでは無いかと思い、以下を実行してみました。

$ bundle update
$ bundle exec jekyll s
...
Liquid Exception: undefined method `encoding' for nil:NilClass in /_layouts/post.html
jekyll 3.4.5 | Error:  undefined method `encoding' for nil:NilClass

案の定、アップデート後のJekyllがエラーをはいてくれるようになりました。

--traceをつけて実行してみると、cgi_escapeの実行中に死んでいることがわかりました。

そこで調べてみると、_includesの中に

{{ page.url | cgi_escape}}

みたいなやつを書いているところが何個かあったので、これをnilのときでも大丈夫なように、

{{ page.url | default: "" | cgi_escape}}

とすることによって、動くようになってくれました。