清貧を自称する割に外車SUVを乗り回す憧れのエンジニア @morygonzalez 氏がウェブ縄文時代の到来 という記事を書いていたのに感銘を受けて私も縄文時代をお迎えすることにした。
私もプラットフォーム依存から脱却して安心を得たい。GoogleのbloggerからGatsbyJSで縄文土器もといマイブログを作ることにした。
GatsbyJSを選んだのは最近良くjavascriptを書くからでHUGOにするかすこし迷った。
Markdownでブログを書いたことがなかったので今回初挑戦。 メモはscrapboxをいつも利用させていただいているので https://github.com/progfay/scrapbox-parser を使ってscrapboxからコピペでブログ記事にできるようにしたいと考えている。
ブログは極力シンプルにしたかったので gatsby-starter-default ではなく gatsby-starter-hello-world から始めた。
やったことは次の通り。
- bloggerからxmlをエクスポートしてmarkdownに変換 blog2md
- Gatsbyを整えてmarkdownファイルを置く
- github pagesで公開してカスタムドメインを設定
良かった点
- graphQL便利
- gatsbyは静的サイトジェネレーターとしてよくできてる
- シンプルにしたので表示速度速くなった
イマイチな点
- ローカルのgatsby serverが時々cache関連でバグる
- github pagesは商用OKだと思ってたけど違うかもなのでnetlifyに移行しなきゃいけないかも
Gatsbyで使った主なプラグイン
react-helmet
meta tagをいじるのに使う
styled-components
CSS in JSでコンポーネントにスタイルを施す
gatsby-plugin-feed
RSSは必須
gatsby-plugin-typography
いい感じに文書のレイアウトを作ってくれる
gatsby-remark-prismjs
シンタックスハイライト
こんなの
import React from "react"
import { useStaticQuery, graphql } from "gatsby"
import Img from "gatsby-image"
const Image = () => {
const data = useStaticQuery(graphql`
query {
placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) {
childImageSharp {
fluid(maxWidth: 300) {
...GatsbyImageSharpFluid
}
}
}
}
`)
if (!data?.placeholderImage?.childImageSharp?.fluid) {
return <div>Picture not found</div>
}
return <Img fluid={data.placeholderImage.childImageSharp.fluid} />
}
export default Image
リポジトリ
https://github.com/drobune/weblog
細かいメモはそれぞれ記事にする。 しばらくこんな感じでやってみる