やったこと
今日はブログの裏側をいくつかまとめて整備した。
- RSS フィードの改善
- GitHub Actions による自動デプロイ
- SVG アイキャッチの OGP 対応
どれも地味だけど、運用していくうえでは大事なやつ。
RSS フィードを真面目に整備した
これまでのRSSは Hugo のテーマ(Stack)デフォルトそのままだったので、テンプレートをオーバーライドして中身をちゃんとした。
content:encodedで全文HTMLを配信。RSS リーダーでわざわざサイトに飛ばなくても全文読める- 各記事のタグを
<category>タグとして出力 - アイキャッチ画像を
<enclosure>タグで出力。リーダーがサムネイルとして認識してくれる dc:creatorで著者名を出力
Feedly とかで購読すると、ちゃんとした見た目で表示されるようになったはず。
フィードURL: https://new.hide10.com/index.xml
GitHub Actions で push するだけで自動デプロイ
これまではローカルで hugo --minify してから wrangler pages deploy を手動で叩いていた。毎回これをやるのは正直めんどくさい。
そこで GitHub Actions を導入した。仕組みはシンプルで、main ブランチに push すると:
- GitHub のサーバーで Ubuntu 仮想マシンが起動
- リポジトリを clone
- Hugo をインストールしてビルド
wrangler pages deployで Cloudflare Pages にデプロイ- 仮想マシンを破棄
ローカル PC が起動していなくても、push さえすれば勝手にデプロイされる。GitHub Actions の無料枠は月 2,000 分あるので、個人ブログの更新頻度なら全く問題ない。15,000記事のビルドでも7分程度で終わる。
これで「記事を書く → commit → push」だけでブログが更新される。手動デプロイからの卒業。
SVG アイキャッチの OGP 問題
ついでに、地味に困っていた問題も解決した。アイキャッチ画像が SVG のとき、X や Facebook の OGP(シェア時のサムネイル)で画像が表示されない。OGP は SVG をサポートしていないからだ。
GitHub Actions のビルドステップに「SVG → PNG 自動変換」を追加して対応した。rsvg-convert で featured.svg を PNG に変換してから Hugo ビルドが走る。記事側は何もしなくていい。
まとめ
RSS、自動デプロイ、OGP対応。全部まとめてやったので一日がかりだったけど、これでブログの運用がだいぶ楽になった。あとは記事を書くだけ ── それが一番大変なんだけど。
