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

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

2022-04-18 22:21:00 +0900

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