JekyllとGitHub pagesでブログを組む時にハマった事
はじめに
自分は今まではてなブログを使っていましたが、ProtonMailで登録できなかった事に加えトラッカーが多いのでgithub.ioドメインで立ち上げました。その際に難儀したポイント3点をここに書いておきます。
申し遅れました、実際の生活と密接な名義としてRai01e(SakuraSystemz)
を名乗らせてもらってます。
記事の流れとしてRubyとJekyllのインストールとセットアップ方法は省きます。
ただテーマ毎に仕様が違うので、それを応用的に運用する為にも公式のドキュメントは読んで損は無いと思います。ベースは同じなので。
https://jekyllrb.com/docs/
ハマった点(1) Jekyllテーマの依存関係
ローカルでテストする段階の話です。正確に書くと更新の途絶えたテーマの依存gemが要求するRubyバージョン
で躓く事が多かったです。
自分の場合だと、見覚えのあるdark-pooleやMidnightのビルド中Ruby 2.x系を要求された(自分のバージョンはv3.0.6)ので更新頻度の高いminimal_mistakes
に決めました。
rbenvでバージョン管理を行えば解決しますが、2.x系は怖くて無理でした。
ハマった点(2) Jekyllキャッシュに気をつけよ
基本的にGitHub pagesのコンテンツは全て全世界公開なので、ブログ用ローカルリポジトリの.jekyll-cache
を削除してからコミットすることを推奨します。このディレクトリには該当リポジトリへのフルパスが含まれているので、端末のユーザー名がGitHubのリポジトリ経由で外部に公開されてしまいます。OPSECの観点から削除しましょう。
jekyll server --disable-disk-cache
またjekyll build --disable-disk-cache
で永続的に無効化できます。
ハマった点(3) GitHub pagesとのタイムゾーンのズレ
このブログを公開する際一番悩まされたのがGitHub pagesで公開した記事が反映されなかった事です。GitHub側のビルドと反映に時間がかかる事は前提知識としてありましたが、あまりにも遅かったのでBuildログを見ると記事の読み込み自体がスキップされていました
1
2
3
Reading: _posts/2023-08-06-post.md
Skipping: _posts/2023-08-06-post.md has a future date
とりあえずChatGPTでデバッグした所、GitHub側のビルドシステムのタイムゾーンがUTCであった為、日本時間よりUTCの方が進みが遅く2023年8月6日付けの記事が公開できない事がわかりました。そのタイムゾーンから考えて未来の記事は公開できないということですね。しかし、先程示した記事が8月6日付けなのは変えようがないので、_config.yml
にfuture: true
を埋め込む事で強引に解決させました。どうもGitHub側のタイムゾーンを_config.yml
側からこれ以外迂回することはできないようです。
終わりに
親切感のないアバウトな記事ですが、自分が難儀した3つのポイントを掲載しておきました。Rubyを長らく触っていたのでこのブログを作るまでの作業時間はおそらく3時間ぐらいでした。殆どの時間をJekyllとGitHub pagesのビルドシステムの研究に割きました。
ともあれこの記事をご覧になった誰かの役に立てば幸いです。