Gatsby

A collection of 5 posts
個人ブログをGatsbyからNext.jsに移行した
Next.js

個人ブログをGatsbyからNext.jsに移行した

元々Gatsbyで作っていた個人ブログをNext.jsで書き直すことにしました。 使っていたGatsbyのバージョンが2.0系と古く、先日購入したM1MaxMBPでビルドもできない状態で、新しくブログ記事を書いてもローカル確認できないままNetlifyにアップしていました。 さすがにそのままというわけにはいかないだろうということで、考えたのは次の選択肢でした。 1. GatsbyのバージョンアップしてM1MaxMBPでもビルドできる状態にする 2. Gatsbyの最新バージョンで1から作り直す 3. Next.jsで作り直す 当時調べた感じだと、M1のMacでGatsbyを動かすには、Gatsby v3.0系である必要がありそうだったので、Gatsby v2.0から最新バージョンまでアップグレードするか、もしくは1から作り直してMDXファイルをコピーする。 もしくは、Next.jsに移行してしまうのも手かなという感じでした。 で、結局Next.jsに移行することに決めたわけですが、これにはいくつか理由があります。 1. 仕事などブログ以外のことでGatsbyを使うこ
5 min read
GatsbyJS + Material-UIのブログにCSS in JSのEmotionを導入する
Gatsby

GatsbyJS + Material-UIのブログにCSS in JSのEmotionを導入する

このブログの見た目はMaterial UIをベースにstyle属性を使って調整していましたが、RichLinkコンポーネントを作った際にどうしても画面の小さいスマホ用のスタイルと画面の大きいPC用のスタイルを分ける必要が出てきました。 style属性のままだとMediaQueryが使えないので今回はEmotionを導入することにしました。 手順 ①必要なNPMパッケージをインストールする yarn add @emotion/core emotion-theming gatsby-plugin-emotion # or npm install @emotion/core emotion-theming gatsby-plugin-emotion ②gatsby-plugin-emotionを読み込む module.exports = { <!-- 中略 --> plugins: [ 'gatsby-plugin-emotion', ], } ③emotion-themingを使えるようにする // 中略 import { MuiT
1 min read
外部イメージにgatsby-imageを適用する方法
Gatsby

外部イメージにgatsby-imageを適用する方法

以前行った外部リンクのリッチ化の続きです。 元の状態は取得した画像のURLを直リンしてしまっていました。 読み込みのラグもありますし、何より相手のサーバーに負荷をかけることになるので一回習得してしまってGraphQLでいい感じに使えるようにしようというのが今回の趣旨です。 解説 外部イメージを扱いたい時はcreateRemoteFileNodeを使います。 前回のコードに処理を追加します。 const { createFilePath, createRemoteFileNode, } = require('gatsby-source-filesystem') // 中略 exports.onCreateNode = async ({ node, actions, getNode, getCache, createNodeId, }) => { if (node.internal.type === 'LinksYaml') { // 中略 // image let image_url if ($(
1 min read
GatsbyJSの外部リンクをリッチにする
Gatsby

GatsbyJSの外部リンクをリッチにする

以前の記事の今後やっていきたいことにもあげていた外部リンクの見た目を良くするためにRichLinkコンポーネントを作成しました。 使い方 https://www.deg84.com/create-sitemap-with-gatsby/ 解説 レンダリング時に取得しようとするとCORS(Cross-Origin Resource Sharing)の対策が必要なのでgatsby-node.jsでビルド時に情報を取得しておきます。 基本的にはOGPの内容を取得します。設定がない場合はmetaなどの情報から取得するようにしてみました。 取得するURLの一覧はYAMLで別途管理しておきます。 exports.onCreateNode = async ({ node, actions, getNode }) => { const { createNodeField } = actions // 中略 if (node.internal.type === 'LinksYaml') { const data = { url: node
2 min read
GatsbyJS + Netlify + MDXでブログ作ってみた
Gatsby

GatsbyJS + Netlify + MDXでブログ作ってみた

以前から技術的なことはQiita、それ以外ははてなブログに書くようにしていたんですが、Qiitaは色々問題が出てきて投稿するのをためらうようになり、はてなもちょっと使うのを躊躇するようになってしまってどこにもアウトプットが出来なくなってしまいました。 まあなんとなく察して下さい。 ってことで何か良いサービスないかなと探したんですが良いものが見つからず結局自分で作るかということになりました。 ちなみに要件はこんな感じでした。 * Markdownで書ける * エクスポートできる * OGPがいい感じになる * はてなブログとかQiitaとかのイメージ * 今どきの見た目 * 技術的な記事以外もOK * メンテナンスコストなし(できれば) * 独自ドメイン設定できること(マストではない) もし何か良いサービスあれば教えてください。 Qrunchは結構条件に当てはまったんですが、技術的な記事以外がNGだったので今回は見送りました。 技術スタック * Gatsby * Netlify * MDX(Markdownからコ
2 min read