なにか書きたくなったときのためにブログを作った。 書く内容としては遊んだゲームについてのこととか Fediverse についての調べたこととかを想定しているけど、本当に書くかはよくわからない。ものぐさなので
せっかくなのでブログを作るうえで検討したことを備忘録代わりに記しておく。
検討した静的サイトジェネレータ (SSG)
なんとなくモダンで、ブログ向けで、……ということで調べて、候補に残ったのが Astro と Zola だった。 この二つに絞られた厳密な過程はよく覚えていないけど、概ね直感でビビッと来るものを選んだだけだったと思う。 途中で検討したけどすぐに候補から外れたものを先に挙げておくと、
- Hugo
- 以前使ったことがあり、せっかくなら新しいものに触れたいと思って外した。そんなに悪い思い出は無いが、 Shortcodes とか Templates とかの独自の構文を見るのがちょっとつらかった記憶はある。
- Gatsby
- 自分が Hugo を触っていたときはイケイケだった記憶があり、今回使ってみようと思って最初に検討した。……のだが、数年前にほぼ死んだプロジェクトと化してしまったらしいことが分かった。例えばこの reddit の投稿などでは Next.js なり Astro なりを使えという話になっている(同様の投稿は他にも複数ある)。
という感じ。 で、 Astro と Zola が残った理由と、最終的に Astro を選んだ理由は、
- Zola
- pros: 最近人気が上昇していて面白そう。Rust で書かれているので速そうだし実装を見る必要が出てきても喜んで見に行けそう。
- cons: テーマが少ない。ウェブデザインの知識は全く無いので自分でテーマをガッツリいじったりとかはあまりしたくない。
- Astro
- pros: 新しくて人気も相当に高いのでなんかイケてそう(雑)。テーマがたくさんある。
- cons: Rust ではない(?)
といったところ。 Zola もかなり気になったけど、ただでさえ趣味でやっていてちゃんと触るかもわからないブログにあんまりメンテナンスコストが掛かるような選択を採りたくなかったので、無難に見える Astro にした。 Zola に対して感じている名残惜しさみたいなものは pros と cons の真面目さの違いからも伝わるのではなかろうか。
NOTEやたら Rust かどうかを気にしているのは個人的に Rust に興味があるからで、自鯖に mitra を選んだ理由も8割ぐらいそれです。
Astro のテーマ選び
Astro のテーマですが、これが実にたくさんあります。興味があったらテーマ一覧のページを見てみてください。 この中から無料のブログ向けのものを探しました。ランディングページが充実している必要は全く無いので、いきなり記事一覧が出てくるような簡素なやつを探して、気に入ったのが次の二つ。
これはどっちも魅力的だったので難しい選択だったけど、最終的には Fuwari が数式に KaTeX を使っているというところが決め手になった。 とは言っても別に数式をガッツリ使うような記事は書かないと思うのでフィーリングです。せっかくなので KaTeX で高速にレンダリングされたオイラーの等式でも見ていってください。
ホスティングサービス
これはもう無料なら本当になんでも良かったのだけど、名前をよく聞くしなんとなく使ってみようと思って Vercel でホスティングしている。 強いて言えば GitHub のプライベートリポジトリにも対応している点はメリットな気がする1。 それ以外の観点に関しては本当になんでも良いと思った。商用利用しないし、月にそんな何回もデプロイしないし。
ちなみに独自ドメインの DNS に Cloudflare を使っているのだけど、 Vercel は DNS の設定を自動でやってくれて楽だった。
その他
せっかくなので textlint と markdownlint を導入した。 textlint に関してはあんまり強いルールを入れてないのでゆるふわな日本語になっています。例えばこの記事には常体と敬体が混在しています。
これもせっかくなので GitHub Actions でプルリクエスト時にチェックさせようと思っているけど、それをする意味はあんまり無いのでまだやっていない。そのうち。
終わり
いかがでしたか?
技術ブログに見せかけてそうでもない微妙な記事になったので、もし何らかの有益な情報を求めてこの記事を見た方がいたら本当に申し訳ない。 これからも技術ブログみたいな真面目なトーンの記事はあんまり書かないと思います。
Footnotes
GitHub が無料アカウントだとプライベートリポジトリで GitHub Pages を使えないので、他のサービスを使うかリポジトリを公開する必要がある。 ↩