Gatsbyを使ってサイトを作ってみる

そもそもReactってなんだろう?
JavaScriptライブラリのこと
Reactの特性のおかげで、高速な処理ができるらしい
しかもコンポーネントベースで開発できるから修正とかに対応しやすくなっている
しかも色々なフロントエンドに利用されているとのこと

ライブラリ?フレームワーク?って何のこと?
すごく分かりやすかった!!
ライブラリ→IKEAに家具を買いに行く(もう家は作ってある)
フレームワーク→モデルハウスを建築する(カスタマイズの幅が狭い)
つまりこれから部品を色々使ってサイトを作っていくのか!

インストールして画面表示する所まで来れた!
ファイルの中身を変えても保存するだけで秒で反映される👀
docusaurusの時はページの中身を変えたらbuildとかdeployしないといけなかったからめちゃめちゃ爆速に感じる🚀
これがGatsbyの力・・・

今日のYWT
Y
・Reactについて調べる
・ライブラリとフレームワークについて調べる
・Gatsbyをインストールして、ページを作って編集する
W
今まで名前しか知らなかったReactが何者か分かった
分かったお陰でこれから何を使ってサイトを作ろうとしているのか理解することができた👌🏻
docusaurusとの使い勝手の違いにも気がつけた
T
このサイト作りがひと段落したら、他のライブラリを使ってサイトを作って比べてみたい
今日はここまで!
続きは明日〜🏃🏻♀️

srcディレクトリの中にCSSを入れるためのディレクトリを作って、スタイルシートを作った
作ったCSSが反映されるようになるためには、importを使う!
これはjsのモジュールを他のファイルから読み込むシンクタックスとのこと

シンクタックスってなに??
構文・文法・書き方のルール的なことらしい
なるほど
(会話で使うことはなさそう・・・😅

export default function Home() {
return <div className="message">Hello ChiYo world!</div>
}
ここら辺の書き方はCSSの勉強をした時にやったな〜

gatsby-browser.js
ファイルを作ってグローバルなスタイリングを指定した
Bootstrapのような外部CSSライブラリを読み込みグローバルに適用したい場合もこちらの手法を用いますのでぜひ覚えておきましょう。
とのことなので、他のコンポーネントセットを使う時にお世話になるのかもしれない

ついにサイト用のプロジェクトを立ち上げ!!
$ gatsby develop
を実行すると、開発用のページのビルドとサーバーの立ち上げが行われる
サーバが立ち上がっている間は、ページの更新を自動で検知して反映してくれるから、
更新するたびにコマンドを実行させなくてもいい
ここがこの前やったdocusaurusと違う所

$ gatsby new <site-name> <starter-url>
やった直後に$ gatsby develop
やったら失敗した〜!
ちゃんとcd
使って新しく作られたディレクトリに移動してから実行しないとダメですね

ブログ用のプロジェクト作るのはこっちだった〜
$ gatsby new blog https://github.com/gatsbyjs/gatsby-starter-hello-world
<blog>の所がサイト名になって
https://github.com/gatsbyjs/gatsby-starter-hello-worldがスターターライブラリになるのか

haaderを作ってゆくぅ🤟🏻

export
を使ってheaderの実装をする
export
なんだろう?
そもそもモジュールを作成する時に使う構文
import文を使用した他のプログラムが使用できるようになる

こんなのが出てきた👀
Something is already running at port 8000
? Would you like to run the app at another port instead? › (Y/n)
どういうことなんだろう・・・

どうやら最初に練習で作ったHello-Worldがport 8000を使っていることが原因らしい
とりあえずHello-Worldには消えてもらう
ここがめっちゃ参考になった

いざHello-Worldを消そうと思ったらHello-WorldのPID(プロセスID)が分からない!!!
実行中のPIDを調べるには$ ps
を使う
ここまでやって気がついたけど、最初に$ lsof -i :8000
やった時にもうPID教えてくれてた😅
最初見方分からなかったけど、多分上下でこういう感じに区切られているんだと思う
ここはターミナルのちょっと分かりにくいところかもしれない

headerできたけどお手本とだいぶ違う・・・
どうしてこんなに違うんだろう
お手本
できたもの

試しにロゴの大きさを0にしてみたけど変化なし
ロゴの画像がおかしいのかな

layoutの方を変えたら変化はあった

コードに間違っているところはなさそうだから、画像をお手本と同じにしてみる
おかしいままだ・・・

スペルミスしてた〜〜〜!!
と思って直したら逆に超小さくなった、あっているのか🤔
数字いじったら大きさとか変わるし合っているのかも

ヒーローコンポーネントを作った
なんだか色々と気になるところはあるけれど、あとで調節すればいい感じになるか・・・?

cssの初期化的なことをしていないから、左側に変な余白があるのかもしれないな〜🤔

とりあえずちょっと調節してみた

-wedkit-line-clamp: 2;
の所がなぜか使えない?感じになってる
なにがいけないんだろう

書き直したら行けるようになった
よかった

すごい!!!!
とてもぽい!!!

画像の所は参考として出してくれたサイトを見て、自分が「いいね」した画像が来るようにした
https://source.unsplash.com/user/{USERNAME}/likes/640x360
でもどうやら3つとも同じ画像が出るようになっているので、工夫する必要がありそう

footerもできた!

Contentfulの無料プランを作ろうとしたら、そんなプランが表示されなかった
最初にデフォルトで無料のスペースができていることが原因なので、このサイトを参考にデフォルトの無料スペースを削除した

Contentfulのフィールド作成完了!

記事を書いて公開するところまで来た

allContentfulPost
が出ない・・・
連携とかに特にエラーは無いんだけど・・・

そもそもExample Key1が作られるって言ってるのに作られてないもんな〜
blogってやつは作られたけど・・・
これじゃいけなかったのかな・・・

最初から確認してみたけど、やっぱりおかしなところはなかった
今日はもう時間切れ・・・・

ここがヒントになるかもしれない
でもgatsby develop
を実行すると「もうport8000は使われているよ!どうする?」
ってなるから、ここをどうしたらいいのか考える必要がありそう
今実行中のプロセスを殺して大丈夫なのかな?
それともyesを選択して8001のポートを使うか・・・
とにかくもう寝よう😌

gatsby develop
はできたけどまさかのエラー・・・

何でこれでエラーなんだろう・・・

GitHubに連携してからgatsby develop
したらエラーになった
多分アクセストークンとかを書いたファイルは隠しファイル?的なやつだったからファイル移し損ねたんだろうな〜・・
もう一回そのファイル作ってコミットとプッシュしてみよう(明日やる

よく考えたらこの↑のファイルはコミットしないようになっているんだった
作ってgatsby develop
するだけ

これやってみようかな

この記事が参考になるかも!

まず見た目を整えてみよう💪🏻

無事にAPI接続は復活したから、サイトの見た目をやっていこう

記事の詳細ページが開けなくなったけど、gatsby clean
やったら開けるようになった〜!
良かった😄

Netlifyにリンクさせるところまでこれた〜!
でもファイルの中身に問題があるらしくて怒られてる・・・

とりあえず長くなってきたしこのスレッドはここまで!
分かったこと
・$ gatsby new blog https://github.com/gatsbyjs/gatsby-starter-hello-world
でGatsbyで使うためのテンプレートを持ってくることができる
・テンプレートごとのどこにどのファイルがあって、そこに何が書かれているべきか決まっているから
下手に装飾とかいじらない方がいい
(そういうのはNextjsとかの方が向いている)
・テンプレートにもContentfulを使ってサイトの中身を外で編集するものもあれば、
GitHubに直接あげてNetlifyでホスティングするものもある
・困ったらclean
とかdeploy
を使ってみる
・エラーには結構分かりやすくどこがどうダメか書いてある
・ブログの作り方は色々あるけど、SSGはめちゃ早い