ZolaのブログテンプレートにOGPメタタグをつける
2025-05-05
このブログはZolaという静的サイトジェネレータと,Zolaコミュニティのブログテーマsereneで作っている。
Zolaもsereneもミニマルな思想で作られているためか,SNS用のOGPメタタグなどはデフォルトでは生成されない。Blueskyなどにポストしたときに少しさびしい感じなので,sereneテーマを少しカスタマイズしてOGPメタタグをつけることにした。
Zolaテーマのカスタマイズ方法は,Customizing a themeに書かれている。一つのテンプレートファイルを丸ごと置き換えで良い場合は簡単で,書き換えたいテンプレートファイルを/template以下にコピーしてきて編集すれば,デフォルトのテンプレートファイルよりそちらが優先されるようになる。たとえば今回はsereneテーマのpost.htmlを変更したいので,
/themes/serene/templates/post.htmlを/templates/post.htmlにコピーpost.htmlに,↓のような感じでOGPメタタグを追加する
# templates/post.html
...
{% if page.description %}
{% endif %}
...
{% if page.extra.cover %}
{% else %}
{% endif %}
https://github.com/mocobeta/blog/blob/main/templates/post.html
og:image は,ブログポスト内にカバーイメージがある場合はそれを使い,なければデフォルトのアイキャッチ画像にフォールバックするようにしている。
ZolaのテンプレートシンタックスはJinja2とほぼ同じで馴染みやすい。
Blueskyに投稿するとこんな感じ。

デフォルトのアイキャッチ画像は「検索システムー実務者のための開発改善ガイドブック」の表紙絵です。🐧