Astro Paper環境で動的OGP画像(Dynamic OG image generation)を生成した際、タイトルなどの日本語部分が「□(豆腐)」になってしまっていませんか?
これはデフォルトで指定されているフォントが日本語に対応していないことが原因です。
今回は、Google Fontsの「Noto Sans JP」を使って、非常に手軽にこの文字化けを解消する方法をご紹介します。
変更対象のファイル
修正するファイルは以下の3つだけです。
astro.config.tssrc/pages/og.png.tssrc/pages/posts/[...slug]/index.png.ts
それぞれ Google Sans Code と記述されている部分を Noto Sans JP に差し替えていきます。
手順
1. astro.config.ts の修正
まずは設定ファイルで指定されているフォント名を変更します。
// astro.config.ts (63行目付近)
// 変更前
name: "Google Sans Code",
// 変更後
name: "Noto Sans JP",
2. og.png.ts の修正
サイト全体の共通OGP画像を生成するファイルを修正します。
// src/pages/og.png.ts (37行目付近)
// 変更前
fontFamily: "Google Sans Code",
// 変更後
fontFamily: "Noto Sans JP",
// src/pages/og.png.ts (148行目・154行目付近)
// 変更前
name: "Google Sans Code",
// 変更後
name: "Noto Sans JP",
3. index.png.ts の修正
// src/pages/posts/[...slug]/index.png.ts (176行目・182行目付近)
// 変更前
name: "Google Sans Code",
// 変更後
name: "Noto Sans JP",
まとめ
以上の修正を行うことで、動的に生成されるOGP画像でも日本語が正しく表示されるようになります。
Warning
現状、私の環境(Astro7+Astro Paper6)ではこの設定で特に不具合なく動作しておりますが、カスタマイズを行う際は各自の環境で動作確認の上、自己責任でお試しください。