この記事の対象者
- WindowsでHugo使っている人
こんなケース
> hugo server
で確認するとちゃんと表示されているのに、GitHubにデプロイすると表示が崩れてしまっていることがあります。
解決策
開発者ツールで一応ログを見てみてください。まあ十中八九「検証に失敗しちゃった(テヘッ)」みたいなことが書いてあります。
そんな時は以下のコマンドを実行したのち、ビルドしてgit addし直すと解決します。
> git config core.autocrlf input
一応解説
実はこの世には改行コードというものが二種類ありまして、\n(LF)と\r\n(CRLF)です。CRLFを使ってるのは僕が知っている限りWindowsのみです。とはいえ、どっちでも動作はするので 普通は 大した問題はそんなにないです。
ここで、hugoのビルド成果物は、 「Windowsだろうと改行コードがLF」 で出されます。hugoのサイトにはハッシュ値によるファイルの検証機能も付いており、 「ファイルのハッシュ計算は改行コードがLFの時」 に行われます。そしてGitは 「Windows環境で使うと、push時にLFをCRLFに直そう」 とします。
つまりはハッシュ値を計算した後にファイルの中身が変更されているので、検証に失敗しているわけです。
そう、すべてはMSの陰謀だったのです。