herohoroブログ

改造するのに勉強したこと【まとめ】_horomiロードマップ



🔄   2023-03-14

これからeasy-notion-blogを使おうとしている方

これから改造したいけど途方に暮れている方…

そんな方々の参考になればと思い、

過去の記事を振り返りながら

「どんな勉強(っぽいこと)をしながら今に至ったのか…」

についてまとめようと思います。

実は

いきあたりばったりです。

「あ〜この部分改造してみたい〜」

って思っても

実際にコードを見ると

「こりゃダメだ。分かる部分でやれることやろう」

って方向転換することはよくありました。

時間がある時に

分からなかった部分を理解するための勉強をすることもありました。

勉強したからといって

そのまますぐ使いこなせるわけでもなく

違う改造をしていた時に

「あ!!この前やったあれじゃん!!」

って急に発見して嬉しくなったこともありました。

そのまま時系列で紹介してしまうと

そのいきあたりばったり感でお腹いっぱいになってしまうかと

思うので

多少前後させながら

整理して紹介していきます😂

CSSを改造してGitHubと仲良くなろう

ブログを改造する中で一番触りやすかったのが

cssファイルです。

image block
stylesディレクトリ内に沢山ある

このファイルはブログの役割ごとになっていて

「このページはこのファイル!」

といった割り当て方にはなっていません。

なので

検証画面というのを表示させて

どのファイルの

どのクラス名なのか…

といった部分を見つけてから改造を始めます。

  • 検証画面の出し方
  • カラーコードの探し方
  • 好きなデザインパーツの探し方
  • 簡単に改造できるスポット

これらを以下の記事で解説しているので

興味のある方はのぞいてみてください⭐

1行で終わる改造でも

Gitにpushすればするぼど

GitHubと仲良くなれます\(^o^)/

慣れないうちは画面ポチポチ_Git・GitHub

VSCodeを使ってコードを編集すると

以下のような画面になります。

image block
保存前の状態

コードを編集すると

タブに●マークが表示されます。

保存をすると(Mac:⌘ + S , Win:Ctrl + S)

image block
件数表示が移動した

表示されていた件数が

ファイルアイコンからGitアイコンに移ります。

Gitアイコンをクリックしてみると…

image block

変更というトグルの中に

さっき編集したファイル(blog.module.css)が表示されています。

イメージ的に

「本当に変更したってことでいいんだよね?」

っていう感じ。

Gitさん、

結構疑い深いです。

変更で問題ないと思ったら

ファイル名の右端にある【+】をクリック。

※ やっぱ戻したい場合は【↶】をクリック

image block

【+】を押すと…

image block

「ステージされている変更」というトグルが出現して

編集したファイル名(blog.module.css)が移動しているのが分かります。

でも、さっきみたいに【+】マークはないですよね 😲

あとは[どんな変更をしたか]をメッセージにメモしてコミットします。

image block
今回の変更はmainContentにメモを加えたこと:Add memo_mainContent

コミットボタンをクリックすると

image block

【変更の同期】というボタンが出現するのでクリック!

そうすると

GitHubの方に追加されていることが確認できます。

image block

この流れをCSSの改造をしながら

繰り返し行っていくと

Git・GitHubのことがなんとなく分かってきます⭐

コマンドを使ってかっこよく決める_Git・GitHub

画面をポチポチしてできていたことを

コマンドを使って操作しようとすると

どうなるのかが気になってきます。

そんな気持ちになったら

オススメなのがProgateのGit講座(無料)。

https://prog-8.com/lessons/git/study/1

image block

これはチャベスさんに教えてもらいました。

普通に楽しいです。

楽しすぎて

課金してしばらくProgate三昧の時期がありましたwww

本家からのcommitを取り込む

慣れれば本家の動向が気になって

追跡したくなるものですが

慣れないうちは

「本家よ!おとなしくしててくれぇ」

と祈りたくなります 🙈

ブランチを使いこなしていかないといけないので

結構大変。

過去に記事でまとめてるので見てみてください。

VSCodeにブランチを可視化してくれる拡張機能があります。

image block

これを使いながら作業すると

image block

心落ち着けて作業に専念できます。(いまだに使ってます)

戻るボタンを作ろう_Next.js

記事一覧ページの【Next page >】をクリックすると…

戻るボタンがないことに気づきます。

戻るボタンを追加するために

調べて実装した結果、

Next.jsの知識が必要だったので

結構勉強になりました。

Next.js Learnでふんわりつかむ

Next.jsにはブログを作成しながらNext.jsについて学ぶ

【Learn】というコーナーがあります。

英語が苦手な私でも

読みながら理解できたのでオススメです。

図解やまとめ問題もあります。

本家のコードを解読する

「Next.jsってこんな雰囲気か〜」

って部分が分かったら

さっそく改造の準備体操を始めます 🧘‍♀️

image block

https://herohoro.com/blog/nextbotton-link_turt

Next.js13になって

ディレクトリなどが変わってしまっていますが、

流れをイメージするくらいでしたら

問題ないかなと思います。

2022/12/20現在のコードはこれです。

image block

https://github.com/otoyo/easy-notion-blog/blob/main/components/blog-parts.tsx#L69-L90

書き方が違っているから

違う意味なのかと思うけど、

実は同じ意味。

これがまた面白いです。

頭フル回転させて戻るボタンを実装

進むと戻るのボタンの動きの違いを整理して

「どんな機能を追加したいのか…」

をひたすら探し求めます。

調べて

調べて

試してみて…

「これか〜〜〜」

といった流れです。

調べると

Next.jsの公式ドキュメントを何度も読む必要があるので

気づけば勉強になっていました。

勉強したことを記事にしよう

Notionで勉強したことを記録することは

よくあるかと思うのですが

「誰かに読まれるかもしれない」

というスパイスを加えることで

自然と整理の仕方が変わってきます。

私はブログの改造をしたかったけど

これといって記事にするテーマを決めていませんでした。

結果的にブログの改造をテーマに扱うことになりましたが

それが自分の知識の整頓にもつながりました。

実は改造したけど

記事にできていない内容って結構あります。

それは今やお蔵入りになってしまっているけど

他の方がその内容で解説されているのを読んで

「なるほど〜」

と一人でつぶやきながら

復習し、弱い部分を補っています。

過去に2回振り返りの記事を投稿しているので

興味のある方はのぞいてみてください⭐

easy-notion-blogを再現してみよう

改造を進めていくと

「DBのプロパティを追加したい」

「記事以外のDBを表示させたい」

「固定ページもNotionで管理したい」

といった欲望に襲われてきます。

Notion API についてもう少し勉強しておいたほうがよさそうかな…

という現実を突きつけられた時期に

私はeasy-notion-blogをもっと簡単にした状態のものを

再現してみることにしました。

image block

https://nextjs.org/docs/getting-started

まっさらなNext.jsを使って

  • 画面遷移
  • レイアウトを色分け
  • header・footerをcomponentへ切り出し
  • .module.cssの反映
  • DBプロパティの取得・表示
  • パスの作り方
  • 記事内にNotionテキストを取得・表示

これらを実装しながら

Next.js Learnでふわっと理解した部分を

ガッツリ習得して、

Notion APIと仲良くなっていきました。

実際すごく時間がかかって苦労しましたが

改造の幅を広げることができたので

オススメです。

本家のコードにいろいろ分からない条件分岐がありましたが

分かる部分だけを使って実装しました。

すごく簡単なeasy-notion-blogの再現をすることのみを

目標にしていたので

省略しても動いてくれましたが、

ちゃんとしたブログにするには必要な記述だったと思います。

まだ理解できていない部分は追々勉強して

分かるコードにしていきたいなと思っています\(^o^)/

再現して分かったことを改造に生かす

「DBのプロパティを追加したい」

「記事以外のDBを表示させたい」

「固定ページもNotionで管理したい」

これらを実現させていきながら

ツヨツヨにします🔥

記事以外のNotionDBを表示する

NotionDBにプロパティを追加して表示する

固定ページをNotionページで管理する

libで取得して

componentsで切り出して

任意の場所に貼り付ける…

といったパターンをつかめてきます\(^o^)/

アクションしてもらうブログにしよう

ブログはすでに用意されている記事を

【表示する】機能。

でも

いろんなブログを見ると

入力フォームがあったり

いいねボタンがあったり

コメント機能があったり

ちょっと気になってきます。

そのために必要なのが「HTTP通信」と言われる知識。

APIがまさにそれで、

HTTP通信を勉強する前とした後とでは

親しみやすさのレベルが違うなと感じています。

HTTP・Next.jsの仕組みを理解できる本

過去にアルパカ先生が

easy-notion-blogをもっと楽しむための本を紹介していて

私も読みました📖

特にWebを支える技術は改造する時に

頻繁に読み返す本の1つです。

image block

https://amzn.to/3WcUScS

よく目にするアルファベット3文字。

ISR、SSR、SDN…

これについて図解で詳しく説明されているのが

WEB+DB PRESS Vol.123です。

image block

https://amzn.to/3hEoXmx

本家で実際に使われている場所

page/apiディレクトリに詰まっています!!

image block

bookmarkブロック

bookmark ブロックがライブラリを使わず実装されるようになり

HTTP通信の記述をのぞけるようになりました。

image block

https://github.com/otoyo/easy-notion-blog/blob/main/pages/api/url-metadata.ts#L44-L50

いいねボタン

いいねボタンは

アルパカ先生のブログのコードを覗きに行くと

見つけられます。

image block

https://github.com/otoyo/notion-blog/blob/main/pages/api/like.ts#L29-L37

他にもOgImageブロックやNotionブロックの記述もapiディレクトリにあるので

見てると楽しいです。

自分もやってみよう

本家でサポートされているHTTPは

そのまま取り込めば終わりですが、

アルパカ先生のブログにしかない機能だったり

自分で作ってみたい機能の場合には

元々ある本家のコードを手がかりに

知恵を絞ります。

実際に作ってみると

多くのことを知ることができました。

他にも検索機能を追加するとかコメント機能とかも頑張ればできそうですが、

入力フォームの実装で燃え尽きているhotomiは

しばらく休憩しようかなと思っていますwww

終わりに

まだeasy-notion-blogを楽しむ部分があって

その中で一番気になっているのが「キャッシュ」です。

数ヶ月前

SlackのデータをSlackみたいに表示するアプリを作ったときに

ブログの改造とはまた違う壁にぶち当たりました。

それがキャッシュでした。

結果、

クリックするたびに

重々しいアプリになってしまい

使い物になりませんでした。

このアプリを使いやすくしたいので

キャッシュを勉強していきたい🔥

飽き性な私でも

easy-notion-blogを使い続けている理由は

【終わりがないから】

なのかもしれないなと最近思えてきました(*´ω`*)(*´ω`*)


この記事が

これからeasy-notion-blogを使おうとしている方や

これから改造したいけど途方に暮れている方の参考になれば幸いです。

まずはできることからはじめてみましょ\(^o^)/

Twitterでは更新のお知らせを随時行っています

興味ある方はLet'sフォロー★

▼ この記事に興味があったら同じタグから関連記事をのぞいてみてね

Buy Me A Coffee

新着記事を通知したい??


RSSリーダーにatomのリンクを登録すると通知が行くよ🐌

https://herohoro.com/atom

やってみてね(*´ω`*)(*´ω`*)

Twitter Timeline


フォロー大歓迎\(^o^)/