Next.jsとmicroCMSでブログを作る
APIにユニークかどうかの設定がない。ただいわゆるslugがほしい場合にはcontentIdがあるため、そちらで代用ができる
slugならコンテンツIDで大丈夫ですね!
テキストフィールドにユニーク設定もできます👌
ありがとうございます!見落としていました!
タグを作成していてユニークであってほしいフィールドがあったので助かりました
カスタムフィールド
APIをグループ化してレスポンスを返せる(おそらく無料プランではその用途しかなさそう)
タグみたいな関連付けをしたい場合は複数コンテンツ参照からコンテンツを選択するだけなんだけど、このタグをもつ記事を検索みたいなことをしたいときにできなさそうな気がする
そんなことはなかった、filterでできる。
webhookもフリープランで使えそうなので、自分のblogだとcontentfulを使っているんだけど、それよりはこちらのほうがいいかもなという気持ちになってきた。contentfulは管理画面がちょっと使いにくい(workspaceが消せなくて困っている)
ただ、dev/stg/prodみたいな使い分けがおそらくできなさそうなので、そこが必要だと厳しいのかもしれない
APIプレビューがまじで最高という感想しかない(が、プレビュー状態ではなく現在公開しているもののテストらしい。最初勘違いした)
とってきているtagsのいくつかのデータが不要だから除外して取りたい気もする(あってもいいから気にはならないけど)
ただmarkdownのパースがなんか <br />
とかでてきてて厳しい……
基本的なやつはfieldsで取捨選択できる
メディア管理で画像の名前が変えられないっぽいので、微妙な名前を付けてしまうとあとでつらそう
APIスキーマからJSON Schemaがダウンロードできるので、そのファイルからTSの型定義を自走生成可能
- https://github.com/YousefED/typescript-json-schema
- https://github.com/bcherny/json-schema-to-typescript
このへん使うのがよさそう
どっちでもいいかな
インストール
❯ yarn create next-app
yarn create v1.22.10
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 🔨 Building fresh packages...
success Installed "create-next-app@10.0.6" with binaries:
- create-next-app
✔ What is your project named? … nextjs-micro-cms-blog
Creating a new Next.js app in /Users/...
ts対応
❯ touch tsconfig.json && yarn dev
yarn run v1.22.10
$ next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
It looks like you're trying to use TypeScript but do not have the required package(s) installed.
Please install typescript, @types/react, and @types/node by running:
yarn add --dev typescript @types/react @types/node
If you are not trying to use TypeScript, please remove the tsconfig.json file from your package root (and any TypeScript files in your pages directory).
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn add --dev typescript @types/react @types/node
❯ yarn dev
yarn run v1.22.10
$ next dev
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
We detected TypeScript in your project and created a tsconfig.json file for you.
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}
デフォの設定が上記。targetをes2018に、strictをtrueに変更する
aspida使うぞ
すでに公式にblogあるじゃないですかー
revisedAtは改定日
microCMSで公開しているけどpublishAtがつかないケースってなんだろう
ブログ書いた!