📅 July 04, 2019
•⏱️8 min read
GatsbyJS + Contentful + Netlifyの構成でブログを作ったので、まとめてみる。
今回は、ローカル環境の構築までが対象です。
(Netlifyで公開する際の手順はコチラ)
「今日から新しくブログを作る!」
そう意気込むのはいいですが、僕の場合こうなります。。。
はぁ(。-д-。)<「また今度にしよ。。。」
※てそい=めんどう(鹿児島弁です)
CSMに戻りましょう!!でも、使うのはheadless CSMです(」・Д・)」
CSMだけどheadless!
コンテンツ管理できるけどフロントがない!
API経由でコンテンツデータを公開する!
つまり、、、 静的サイトジェネレーターでてそかった「記事のコミット」だけをCSMに移譲する感じ!
最強じゃん∑(-∀-ノ)ノ

しかも、これらの処理は以下のトリガーで自動で動くように設定できます。
※画像のSlackはビルド結果を通知しています。
では早速構築していきましょう!!
※GitHubのアカウントを先に取れば、他はそれを使ってサインアップできます。
API keysはローカル環境を構築する際も必要になってくるので、先に取得しておくとスムーズです。
ビルド中、記事データ等をContentfulから取得するのに利用します。(認証として)
作成しておいたアカウントでログイン後、Create Spaceリンクからスペースの作成に入ります。
Spaceは、ブログデータを格納するためのフォルダ的な位置付けです。

プランは無料でOK!!

スペース名は任意です。
スペース上にサンプルの構成(Content model)を作ることもできますが、
今回GatsbyJS側から自動で構築してくれるスクリプトを流すので、Empty Spaceで行きましょう。

これで、Spaceが作られます。
必要なAPI Keyは以下の通りです。
※Personal Access Tokensに関しては、1発目の初期化を行うため必要になってきます。 (一度初期化してしまえば不要になります)
これらの取得は、
対象Space -> Settings -> API Keys
から取得できます。
Personal Access Tokensだけは別タブにあるのでご注意を。
GatsbyJSを使っていきましょう! (ReactJSを使った静的サイトジェネレーターです。)
なくてもできますが、コマンドを省略できるのでテソニストにはおすすめのCLIツールです。
とりあえず入れておきましょう!!
$ npm install -g gatsby-cli
ReactJSをゴリゴリ書いてサイトを作ってもいいのですが、 なる早でブログを構築したいのでスターターキットを使うことにします。(テソニストの鏡)
今回はこちらを利用しました。
$ gatsby new sample-blog https://github.com/ryanwiemer/gatsby-starter-gcn.git
※sample-blogはお好きなブログ名に置き換えて実行してください。
※実行すると、カレントディレクトリ配下にsample-blogフォルダができて、ソースコードが配置されます。
gatsbyコマンドで構築した場合、依存モジュールのインストールまで自動でやってくれるので便利ですね。
setupを実行すると、API Keyの設定とContentfulのSpace初期化を対話式にやってくれるので便利です。
$ npm run setup
To set up this project you need to provide your Space ID
and the belonging API access tokens.
You can find all the needed information in your Contentful space under:
app.contentful.com -> Space Settings -> API keys
The Content Delivery API Token
will be used to ship published production-ready content in your Gatsby app.
The Content Preview API Token
will be used to show not published data in your development environment.
The Content Management API Token
will be used to import and write data to your space.
Ready? Let's do it! 🎉
? Your Space ID {Space Idを入力}
? Your Content Delivery API access token {Delivery API access tokenを入力}
? Your Content Preview API access token {Preview API access tokenを入力}
? Your Content Management API access token {Management API access tokenを入力}
これで、準備は整いました。
$ npm run develop
このコマンドでローカル環境用のサーバが立ち上がります。
ちなみに、ローカル環境ではPreview用のAPIが呼ばれるため、Draft状態の記事データも読み込みます。
http://localhost:8000/にアクセスしてみましょう。
・・・・・・・
・・・・
・・
・
表示できました(・∀・)!!
build後にpublicフォルダをホスティングすれば、簡単に公開できちゃいます( ・ω・)ノ
次回の記事では、「Netlifyへのホスティング・自動デプロイの設定」を書いていきます。
雑なまとめですが、①は以上です!