Synced block を使えるように実装した(Notion API アップデート)

📆November 25, 2021🔖 Notion APINotion Blog

2021年11月の Notion API アップデートで Synced block が使えるようになったっぽいので、このブログでも導入してみました。

https://developers.notion.com/changelog/callouts-and-quote-blocks-are-now-supported

実装はこんな感じで、ブロックのタイプに synced_block が入ってくるので、それを判定してやるだけ。中身は通常のブロックと同じ構造体のリストになっているので、map で回してそれぞれを JSX に変換する処理をかければ OK。synced_block がネストされることはないと思うけど、再帰的に synced_block がなくなるまでループが回るみたいな感じで実装した。

case 'synced_block':
      return value.children.map(getJsxElementFromNotionBlock)

該当コミットはこれ。

https://github.com/35d/35d-blog/commit/439ec95fb422433f5723c85cdf503111f41f6e1c

ブログ記事の下部に共通の宣伝の文言を入れたいとかそういう用途で使えそう(今のところ予定はないけど)