2019.4.13
このブログはNetlify CMS、Gatsby、Netlifyを組み合わせて作られています。
あまりにも簡単につくれてしまうので、それぞれが何をやっているのかわからなかったので、まとめました。
大まかな流れはこの図のようになります。
Netlify CMSがやってくれるのはmdファイルの作成とGithub等へのコミットです。
たぶん連携しているサービスに依存(Github, Gitlabなど)します。
それぞれがこんな感じで対応します。
ここらへんのことはこちらの記事にまとめています。
まとめるとこうなります。
詳しい仕組みについては↓こちらの記事が参考になります。
Gatsbyはどうやって静的サイトをジェネレートしているのか – Eureka Engineering – Medium
大まかな概念はこちらの図の通りです。様々なデータソース(CMS, マークダウン, その他データ)をGraphQLで一元的に取得して、レンダリングにはReactを使います。
ビルド時にmdファイルの内容を取得して、htmlを吐き出します。
ページ遷移の際にResource hintsが効いてくれるので、遷移先のデータ(json)を先に取得します。
mdファイルのデータだけでなく、遷移先のコンポーネントも取得してくれるのでSPAが実現できています。この辺を勝手にやってくれるのは実にありがたいです。
Githubへのpush、PRの作成などをキックにデプロイ(Gatsbyのビルド)してくれます。
それぞれのスナップショットもとってくれるのでPRごとにサイトのチェックもできます。
htmlを公開してくれます。独自ドメインも設定できます。