ブログをリニューアルしました(11か月ぶり2回目)
なんかいろいろあって今後頻繁にブログ記事を更新していこう(月一ぐらいを想定)ということになりました。
が、前回作った奴はサクサク動いててよかったんだけど、さすがに機能が少なすぎたのでリニューアルすることにしました。
経緯
前回は yarn v2 を使用して依存関係に関係なくブログをビルドできることを考えていましたが、いろいろ課題がありました。
- パッケージの問題は起きなくとも結局 node の更新で死んでしまい、パッケージの更新が必要になる
- 機能がいろいろ足りていないが、デザインも思いつかないしやる気も出なかった(やりたいことが多すぎて時間がない)
- yarn v2 はもう古い?(らしい?マジ???)
といった理由から、Rubyは嫌いですが GitHub Pages で使用できる Jekyll を使用することにしました。
はてななどの(カスタムドメインで有料になる)サービスを利用するという手もありましたが、なんかお金かけるほどかな…という気持ちもあり Pages を使うことにしました。
が、一から作る気はないのでテンプレートをお借りすることにしました。
今回はたまたま目についた、目次や検索機能が存在する MrGreen-JekyllTheme を利用させてもらうことにしました。
開発環境の構築
さすがにローカルに Ruby を入れたくはないので、 Jekyll の docker コンテナを使用してローカルでの開発環境をセットアップすることにしました。
docker-compose.yml
version: "3"
services:
jekyll:
image: jekyll/jekyll:latest
volumes:
- .:/srv/jekyll
command: jekyll serve
ports:
- "4000:4000"
7か月ぐらいコンテナが更新されていなくて少し不安でしたが、ちゃんと動いたので問題ありません。
これを起動することでローカルで確認ができるようになりますが、リンクなどは正常に動作しません。
上書き用の設定ファイルを作成し、追加で読み込ませるようにします。
_config.local.yml
domain: "localhost:4000"
url: "http://localhost:4000"
baseurl: ""
また、 WSL 環境において正常にファイルの反映が行われないなども問題も解決させたりとかのオプションを追加しておきます。
docker-compose.yml
version: "3"
services:
jekyll:
image: jekyll/jekyll:latest
volumes:
- .:/srv/jekyll
command: jekyll serve --force_polling --livereload --verbose --trace --config _config.yml,_config.local.yml
ports:
- "4000:4000"
あとは docker compose up -d
するだけ。簡単ですね。
ですが記事の生成がかなり遅いです。このブログだけでも1分はかかります。
カスタマイズ
カスタイズはフォークして設定ファイルなどをいじるのですが、設定できる項目が多く非常に簡単です。
多言語化や cookie 設定の無効化など、サクッと設定できました。
記事の移植作業
もともと mdx で記事を書いていたのでメタデータ的なアレを仕様に合わせて書き換えるだけでした。
が、 yyyyMMdd-title.mdx
だったのが yyyy-MM-dd-title.markdown
になったため50個以上ある記事を頑張って手動で変更していました(エンジニア失格)。
ゲームの生放送とか見ながら作業をしていたので1日かかりました。
デプロイ
リポジトリを別のものにしたため、そのままサクッとカスタムドメイン名の設定を外してつけるだけでした。簡単だ…。
今後の記事投稿について
今年頭(多分)ぐらいに QNAP の NAS を購入していたのですが、来週あたりにレビューや使い道・購入目的などを書けたらと思います。
あとは自宅サーバーの環境を Proxmox から LXD に変更したのですが、その際の話とかをしたいと思います。
これは社内でも話す予定なので来月ぐらいに更新できたらなと思っています。
忘れてなければやります!忘れてなければ!