一番の問題点は、「Jekyll v4.0 以降、linkやpost_urlタグの前にsite.baseurlを使用する必要がなくな」ったことである。これまでローカルではv4.2.0だったのでsite.baseurlを使わずに正常なリンクが作られていたが、GitHub Pages側ではv3.9.0なので404エラーとなるリンクが作られており、今日まで気づかなかった(エラーかワーニングか出してほしかった)。
で、ローカルを3.9.0にした。
- 上記以外のバージョン変更点は大したことないと判断
- 今後の管理方針が変わったとしてもGitHub Pagesと同じ環境にしておけば融通が利きやすそう
- 一瞬Jekyllのバージョンを判定してsite.baseurlありなしを切り替えるプログラムを作ろうか考えたが、バージョンをダウングレードしたほうが圧倒的に楽
結果として、なんとなくビルドが遅くなった(6、7秒が10、11秒?)、それ以外に対した違いはなかった。以下に概要を示す。
v4.2.0からv3.9.0にダウングレードした流れ
変更前のローカル環境は
- Windows 10
- Jekyll 4.2.0
- ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]
- Bundler version 2.2.2
- JekyllテーマとしてMinimal Mistakesを採用
-
ルートディレクトリ上の
Gemfile
にgem 'jekyll' '3.9.0'
を追加すでに
gem 'jekyll'
がある場合はそのバージョンを3.9.0に変更する -
コマンドで
bundle update
、bundle
、bundle exec jekyll s
を順番に行うこれでエラーが出ずビルドに成功すれば終了だが、自分の環境では次のエラーが出た
Dependency Error: Yikes! It looks like you don't have kramdown-parser-gfm or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- kramdown-parser-gfm' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/! Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2020-12-25-google_analytics.md': kramdown-parser-gfm ERROR: YOUR SITE COULD NOT BE BUILT: ------------------------------------ kramdown-parser-gfm
- エラーを読む限り、gemれば良さげなので、
Gemfile
にgem 'kramdown-parser-gfm'
を追加 bundle
、bundle exec jekyll s
を順番に行う
これでエラーが出なかったので完了。あとは{% link
または{% post_url
の手前に{{ site.baseurl }}
を記述すればよい。