Notion をヘッドレス CMS のように使う (with GitHub Actions, hugo)
Created: 2022-04-18
Notion のエディタを使いたい, hugo は捨てたくない
Notion を使い、そのエディタの便利さに慣れてくると、hugo で運用しているブログの更新が面倒になってくる。基本的にテキストエディタで Markdown を追加・編集して更新する必要のある hugo は気軽とは言い難い。しかしレンダリングの速さや画像をリサイズできたりなど、hugo の便利な機能も捨てがたい。なので両者を GitHub Actions で組み合わせてみることにした。
実装 みんな大好きピタゴラ装置
やっていることは単純で、 GitHub API と Notion API を利用し更新対象の記事を取得し Markdown に変換して commit && push
。あとは peaceiris/actions-hugo を使うことで自動的にデプロイまで行うことができる。
notion2hugo の workflow は cron: '*/5 * * * *'
で5分に1回動作するようにしているが、期待通りの時刻では動かないものらしいので、 workflow_dispatch
を設定して手動で動くようにした。
今後
ある程度は汎用化できそうなので Marketplace に公開したい。ただし hugo では簡単に shortcode を作ることができるので、たぶん皆それぞれのカスタマイズをしているだろうから、簡単ではないと思う。