このサイトの出力方法 2024

方針

ソース上は20年前の HTML と大して変わらない状態にする。

npm

サンプルの blog-starter をベースに構築

Markdown を HTML 出力する。remark-gfm はテーブル用。

minify 用のライブラリ。CSS は外部ファイルにせず、すべてインライン出力している。

PNG を生成できるライブラリ。favicon 用の画像を出力するために使用。とはいえ 16x16 の黒いだけの画像。

RSS を出力するライブラリ。Markdown の Header matter の内容を見て、公開中の最新の記事10件を出力してる。

CSS フレームワーク

軽量な CSS フレームワーク。未圧縮 minify で 18kb、gzip で 3kbくらい。機能は丁度いい具合に抑えられている。

できれば CSS はデフォルトスタイルでいきたいが、見づらいこともあるので導入。

Next が出力したファイルに手を加える

npm コマンドで、ビルド後のタイミングでそれぞれ呼び出す。

インフラ

リリースブランチが更新されたら、Github Actions で S3 のファイルを全更新して CloudFront のキャッシュをクリアする。

使わなかったもの

記事を書いて保存しておき、API 経由で利用するサービス。

思想的にはこのような形態のサービスは素晴らしいのだが、営利目的となると事業戦略が機能やサービス継続性に影響を与える。端的には使いづらいので、個人サイトは自分で管理したほうが良いという結論に至った。