モチベーション
ブログとして記録は残したいがさぼってしまう。どれくらいかというと1年に数記事書けばがんばったほう。でも記録は碌に取らないのに環境は新しいものを調べたくなる。
そんな人間はどのような環境を用意すればよいのかを検討しその実践をまとめる。結論は今回の再検討でも継続となり、「静的サイト」で「Hugo」となった。
前提
静的サイトを用いる前提とする。ブログサービスは広告が許容できない、正直最近の広告は非アクティブになると全画面に出るタイプが出てきて極めて嫌。また仮にこのサイトに付けたとて小銭も入らないだろう。であれば綺麗なウェブページをこの世に出回らせたいためこのドメインでは広告なしとする。
CMS系は超さぼり系としてセキュリティアップデートに耐えられない。静的サイトのデメリットは始めづらさや編集性だが、私としては趣味の範疇であり許容範囲内なためこれにする。
さぼり度合い
本稿を書いている場所は2020年に作成した。今年は心変わりをし記事にする対象の範囲を広げたがそれでも本記事がなんと驚異の11記事目。すごい!さぼり!
ここ以前にもwordpressを運用していたり、技術記事をどこかに投稿したりなんだかんだで合計8年くらい何かまとまった情報を電子の海に放流している。ただ多くても年間数記事程度。それでも継続だけはしたい、そんなレベル。
検討
静的サイトジェネレーターは星の数ほどある。今回はHugoからAstro.jsに乗り換えるべきかという観点で調査した。なぜならAstro.jsが最近(直近2年ほどで技術記事に出始めた印象)流行っていたようであり、新し物?好きの血が騒ぐからだ。そしてテーマを眺めていたらfuwariとか、シンプルでかっこよかった。移行したくなった
候補・評価基準
今回は次の指標を用意した。他にもあると思うが、決め手がこの2者なのでここを比較対象とする。対象・指標ともに2つのため評価指標単位で検討する。結果は次のようになる。
対象 | 環境保持・更新性 | 保守改変性 |
---|---|---|
Hugo | ◎ | ○ |
Astro.js | △ | △ |
環境保持・更新性
Hugo
go言語で作られているためexe単品で配布している。exeを信頼して良いかとかそういうのもあるが、そこは面倒なので自分でのビルドは不要とする。そうなるとダウンロードしたexeを乱暴にgitにぶち込んで置けば2年後も環境が保持される、事実されていた。
更新時も新しいexeを落としてきて動くかのテストをすればよい。動かなかったときは旧exeに戻すだけで良い。すばらしい、さぼりほうだいだ。問題はコマンドを忘れるという点だけだが、さすがに些事だろう。
この辺りZolaでも同様のことを実現できるが、Hugo程流行っていないためかテーマがあまりない。自身で作るのは面倒民としては、移行するほどのメリットがやはりない。
こういうのは集約してテーマをまとめてほしい気はするが、やっぱりみんな自分の考えたジェネレーターを作りたいのだろう。PRとかも面倒だろうし。ただで使わせてもらっているので文句は言えない。
Astro.js
node.jsで作られているため、node環境を用意する必要がある。幸いなことに(つかわないくせに)なぜかnvm-windowsが入っているため仮想環境が整備されている。そのためnode環境自体は用意が楽。
そして最終成果物も静的サイトであり、node自体がEOLを迎えたとしても利用し続けることに問題はない。でもEOLを迎えていると自動デプロイサービスに問題が出る可能性があったり、でもやっぱりアップデートしちゃう。そのため、exe単品と比べると更新するものが環境とAstro自体の2つになってしまい面倒となる。
保守改変性
Hugo
極めて容易。themesフォルダに配布されたテーマをいれ、ルートで上書きしたいファイルを作成して上書きすればよい。なんと楽なことか。中身も基本はhtml, js, cssで差し込みたいところにHugo構文を差し込む形なためファイル自体の純粋性もある程度は保たれる。
直近でも親テーマに少し更新を入れていただいていたため追従させてもらったが、更新自体は30分もかからずに終わった。
Astro.js
不明。雑にドキュメントを読んだ限りテーマを分離させる方法が見つからず、テーマのREADMEを読んだ限りではgit cloneしてそこに修正を入れて、という感じに見えた。
拡張子は.astroで中身がほぼjsなのはこのライブラリの特徴ではあるが、改変を考えるとがっつりコードを読むことになり自分で作るのとあまり変わらない気がしてくる。
極めつけはテーマ側の実装がnodeバージョンにも依存する可能性があるため、自身・Astro.js・themeのnodeでバージョンが合わないと面倒なことになりかねない。
結論
検討を重ねた結果、結局Hugoを継続することにした。このサイトは放置が基本であり、雰囲気かっこよくしたところで、自身も平気で数か月単位で放置するサイトだ。
そう考えると環境保持・保守改変性が極めて高いHugoを継続するのが得策だろう。正直このレベルで楽だとなぜか自身でテーマを作る気が沸いたとしても2年後でも使いまわせそう。そのため、自身で組む選択肢という観点でもHugoが良いように思った。
ただ検索は欲しいな。でも実装面倒。