ブログエンジンのことを考えてる

n回目。

静的サイトジェネレータ(以下SSG)はおおよそ正しいが、しかしただ記事書いただけでサイト全体をビルドするのどう考えてもアホというか、しかし実際秒でビルドできるなら考えるのを放棄して秒でビルドする、という戦略もそんなに間違ってはないとは思う。

が、それでもやっぱりアホだと思う。

ブログは動的な部分と静的な部分がある。静的な部分だけ静的生成して動的な部分は動的なままにする、というやり方は、SSG でもたとえばコメント欄などでそうしてる。が、コメント欄以外も別に動的でいい。たとえば最新記事5件のリンクみたいな本文に付随する動的な情報まで静的生成で全ページに組み込むのはアホだと思っている。最新記事5件のリンクは本文に関係ない情報なんだから検索エンジンから見えなくても問題ない。こんなのはクライアントサイドインクルードでよろしい。

大変なのはあるキーワードを持つページの一覧とかだが、別にこういうのだけサーバ立ててやったらええがな、と思う。検索はサーバ立ててやればいい。
ごく個人的には、キーワードはどうせつけなくなるからいらないと思っている。面倒。ツイッターですらハッシュタグをつけるのが面倒。

次の記事、前の記事へのリンクくらいは実際ほしいが、ビルドのときに前後記事も一緒に更新すればいい。最大3件分ビルドするだけ。これでいいじゃんと思っている。

もちろんブログのテーマを書き換えたら全ビルドが必要とか、そういうものから逃れられないが、テーマ書き換えは式年遷宮みたいなものだから別にそんときはそんときで全ビルドすればよろしい。

が、なんかそういうフットワークの軽いSSGっていまのところみたことがないし、やってる人も知らない。自分でやるしかないのか……と思うが、まあやればいいのでやるか……となっている。

SPA の普及でかつての ajax ブームのとき以上にクライアントサイドインクルードが当たり前になった割に、SSR or SSG みたいな両極端なユースケースしかなく、うーん、なんかなーと思っている。全ビルドは高速化の仕組みが発達したりはしてるんだけど、持続可能な仕組みとは思えない。

実際 Jekyll は重すぎて無理、みたいな話も聞くし、だからこそ高速な Hugo などが出てきたのだと思う、が、Hugo であっても件数が増大したときに1記事書くたびに全ビルドするのが割と馬鹿にならなかったりするんじゃないかという疑いはある。
1日1記事書くと3年で1000件を超える。10年毎日書いていれば3600件以上の蓄積がある。さすがにこれくらいのボリュームの過去ログがあると Hugo でもパフォーマンスに影響が出るという話は目にしている。

さいわいこのブログはせいぜい数百件程度なので大したことはないし、1000件超える頃には別のソリューションが出ているだろう。が、Wordpress はそうやって10年デファクトとして使われ続けたわけで、10年使われることを想像したほうがいい。言っちゃ悪いが Jekyll が出てきたときの SSG は10年どころか1年後すら見えてなかったと思う。なんならその手の課題は MovableType の頃からあるからね。

ブログこうして続けてるんだからはてなブログでいいじゃんとも思うんだけど、はてなブログの10年後はわからないので、10年後の自分のためにブログエンジンを組むことをそろそろはじめたいと思っている。

こちらからは以上です。