GitHubブログのテーマをアップデートする
Jekyllフレームワークを使用していた時に書かれた記事です。現在はAstroに移行しました!
はじめに
私が使用しているChirpyテーマは継続的に管理され、定期的にアップデートされている。暇な時に時々アップデート履歴を覗いているのだが、今回確認してみるとちょうど昨日付でバージョンが 7.0.0 に上がり、いくつかの改善点と新機能が追加されていた。
このバージョンになって、ローカルビデオおよびオーディオファイルの挿入が可能になり、フロントマターで description の記述が正式にサポートされた。GoatCounter を利用してポストの閲覧数を測定できるようになった点も目を引く。
アップデート
まずファイルをバックアップしておくことを推奨する!
GitHubブログが他のブログプラットフォームに比べてサービス提供者との結合度が低い分、アップデートのプロセスは単に既存のフォルダに新しいファイルとコードを持ってくることだと思えばよい。これまでにアップデートされたコードを自分のリポジトリにマージすることが全てだからだ。なので、すでにGitを使ったマージプロセスを経験した方には難しくないかもしれない。
私の場合テーマをカスタマイズする際に、_data/locales/ko-KR.yml の韓国語翻訳を独自に改善したり、サイドバーアイコンの種類とサイズを変更したり、記事プレビューのタイトルを別途ボールド体で処理するなど、様々な細かい作業をしていたが、こうした変更は当然公式には反映されないため、アップデートのたびに修正されたコードを外科手術のように一つひとつ確認して保存しなければならない。公式アップグレードガイドでも「Please be patient and careful to resolve these conflicts」と、忍耐強く作業するよう案内している。
自動マージ
git remote add upstream https://github.com/cotes2020/jekyll-theme-chirpy.git
{: .nolineno }
私は念のためGitリポジトリをもう一度登録することから始めた。必須ではない。
git fetch upstream
git merge remotes/upstream/master
{: .nolineno }
次にChirpyの master ブランチとマージした。マージされるファイルのバージョンはこちらに登録された最新タグで確認でき、この記事を書いている時点では当然 v7.0.0 と確認される。途中で問題がなければGitが可能なものについては自動マージが行われ、Gitでは処理できない残りのマージ事項を手動で引き続き行う必要がある。
手動マージ
情報ページの作成画面。上下どちらかを残してコンフリクトを解決する。
私の場合は続いてVS Codeで手動マージを進めた。もしこの方法でのマージが初めての方がいれば、自分のコードを保存したい場合は Accept Current Change を、新しいコードで置き換えたい場合は Accept Incoming Change を選択すればよい。一度選択すると時間が経ってから戻すのは難しいので、ゆっくり確認するのが良い。
私がこれまで使っていたバージョンは 6.3.1 だったが、その間に変更点も山ほどあり、私が別途修正した部分も少なくなかったので、一つひとつゆっくり確認した。幸い /* region 修正済み */ のように注意が必要な部分をコメントで印をつけてあったため、約30分程度でそれほど長くはかからなかった。
npm run build
{: .nolineno }
マージが終わったらCSSとJavaScriptファイルをコンパイルする。面倒でも手動で行う必要がある。
git add assets/js/dist _sass/vendors -f
{: .nolineno }
そして生成されたファイルをGitリポジトリに追加した後、プッシュすれば完了である。
ここまで完了したら、最後に bundle exec jekyll s コマンドでローカルサーバーを起動し、サーバーが正常に立ち上がるか、ページに問題がないかを確認する必要がある。漏れたマージ事項があるかもしれないし、マージが誤って行われてページのどこかが壊れているかもしれないからだ。もしそうした部分があれば、時間がかかってもゆっくり解決しよう。
適用確認
{% include embed/video.html src=‘/2024-05-12-blog-update/video/240410-232136.mp4’ title=‘ビデオサンプル。現在開発中のゲームプレイショットです。’ %}
{% include embed/audio.html src=‘/2024-05-12-blog-update/audio/eating-chips.mp3’ title=‘オーディオサンプル。パリパリとしたお菓子を食べる音です。’ %}
おわりに
アップデートが終わった! 7.0.0 で追加された機能であるビデオ、オーディオともに問題なく表示される。ただ実際に適用された様子を見ると、ビデオの場合はYouTubeの埋め込みを使う方がすっきりするのではないかとも思うが、これをどこで使うかはゆっくり検討しよう。
ともあれ、普段から溜まっていた修正事項が確かに多くあったし、一度テーマのバージョンをアップデートしておきたかったところ、初めてにしてはうまく片付いて満足している。一度やってみるとそれほど難しい感じでもないし、今後は時々管理していこう。