hogashi.*

日記から何から

NewtとNetlifyでブログをつくって公開してみる

www.newt.so

 新しいコンテンツ管理の体験 | ヘッドレスCMS「Newt」 というサービスが登場していて、全部用意されていそうだったので、ひとまずブログをつくって公開するところまでやってみた。

アカウント/スペースをつくる

 https://www.newt.so/ からできる。登録すると、スペースを作成 → App を作成という流れになる。

 スペースひとつに App 複数、というつくり。スペースに他の人を招待することができるので、スペースが人の集まり (会社とかサークルとか) に相当しそう。 App ひとつがブログひとつに相当するので、サークルの技術ブログと日記を分けてつくって、 1スペースで管理、みたいなことができそう。

 スペース UID は、あとで API でアクセスするのに使うので、わかりやすい文字列にしておくとよさそう。

App をつくる

 App はテンプレートからつくるのと、まっさらな状態からつくるのとで、 2種類のつくり方がある。その App がどういうデータ (モデルと呼んでいそう) を持つかを決めるのだけど、ブログっぽいモデルとか、メンバー一覧っぽいモデルとかがテンプレートとして用意されている。高速にブログをつくるならテンプレートから Blog とかを選ぶとよさそうだったのでそうした。

f:id:hogashi:20220309162453p:plain

 App UID もあとで API で使う。

画面をつくる

リポジトリの用意

 App はコンテンツのデータがあるだけで、 API でアクセスして取得してくることができる。それを HTML に入れて画面をつくるとブログが完成する。
 Newt 公式で画面のテンプレート (スターターと呼んでいそう) が用意されていて、これを使ってさっと公開してみることにした。

www.newt.so

 App に Blog2 のテンプレートを選んだので、スターターも 2カラムブログ GitHub - Newt-Inc/newt-blog2-starter-nuxtjs を選んだ。
 まず GitHubリポジトリがあるので、自分のアカウント (org) に fork する (右上に Fork ボタンがある)。

f:id:hogashi:20220309153243p:plain

 僕だと hogashi 以下にリポジトリができる (https://github.com/hogashi/newt-blog2-starter-nuxtjs) ので、ここで作業していくことになる。どう作業したらよいかは README に書いてあるので、それにそってやっていくと完成する感じ (実は Step 1 の 3 までが終わっている)。
 Step 1 の 4 の CDN API トークンを作成する「スペース設定」はここ。「作成」を押したら作成できる。

f:id:hogashi:20220309154108p:plain

 Step 2 は、 GitHub 上でもできる。自分のリポジトリの nuxt.config.js をクリックして内容が表示されたら、右上の鉛筆から編集する。

f:id:hogashi:20220309154340p:plainf:id:hogashi:20220309154405p:plain

 README に書いてある通り、 publicRuntimeConfig というところの スペースUID AppUID CDN API トークン をそれぞれコピペで埋める。 CDN API トークンは、さっき作ったときの画面からコピーしてこれる。 commit changes すると変更完了。

f:id:hogashi:20220309154442p:plainf:id:hogashi:20220309154710p:plain
 

公開

 GitHubリポジトリからコマンドを叩いて静的サイトをホスティングできるならなんでもよさそう、過去に Netlify (https://app.netlify.com/) を使ったことがあったので今回はそれでやった。

 Add new site から、 Import an existing project を選ぶ (GitHubリポジトリからつくるので)。 GitHub を選んで Netlify を GitHub に連携し、さっきつくった (fork してきた) リポジトリを選ぶ。

f:id:hogashi:20220309155043p:plainf:id:hogashi:20220309155129p:plainf:id:hogashi:20220309155150p:plain

 README によれば、サイトの生成は yarn generate なので、 Build command をそう書き換えて、 Deploy site を押したらあとは待つだけ。

f:id:hogashi:20220309155206p:plain

 Netlify が頑張っている様子は Production deploys の一番上 (最新) をクリックすると見れる。 Deploy log というのがどんどん流れていくはず。

f:id:hogashi:20220309155454p:plain

 こういう感じになったら成功で、 Preview ボタンが登場するはずなので、それを押すと実際に公開されたサイトを見ることができる。

f:id:hogashi:20220309155407p:plainf:id:hogashi:20220309161601p:plain

 ためしに高速に作ってみるか、というのができていかにも便利そうだった。あと package.json に不要な末尾カンマがあって JSON としては invalid になっていそうだった (Netlify でエラーが出てそうだった) ので、 p-r を作ってみたところ、爆速でマージされていてありがたい。 https://github.com/Newt-Inc/newt-blog2-starter-nuxtjs/pull/7