tbsmcd.net
Dark mode
index, archives, tags, search, profile

Notion をヘッドレス CMS のように使う (with GitHub Actions, hugo)

Notion のエディタを使いたい, hugo は捨てたくない


 Notion を使い、そのエディタの便利さに慣れてくると、hugo で運用しているブログの更新が面倒になってくる。基本的にテキストエディタで Markdown を追加・編集して更新する必要のある hugo は気軽とは言い難い。しかしレンダリングの速さや画像をリサイズできたりなど、hugo の便利な機能も捨てがたい。なので両者を GitHub Actions で組み合わせてみることにした。


実装 みんな大好きピタゴラ装置



sequence

 やっていることは単純で、 GitHub API と Notion API を利用し更新対象の記事を取得し Markdown に変換して commit && push 。あとは peaceiris/actions-hugo を使うことで自動的にデプロイまで行うことができる。

 notion2hugo の workflow は cron: '*/5 * * * *' で5分に1回動作するようにしているが、期待通りの時刻では動かないものらしいので、 workflow_dispatch を設定して手動で動くようにした。


今後


 ある程度は汎用化できそうなので Marketplace に公開したい。ただし hugo では簡単に shortcode を作ることができるので、たぶん皆それぞれのカスタマイズをしているだろうから、簡単ではないと思う。


Tags: GitHub Actions hugo Notion