というわけでHugo + Firebaseでブログを作った。
主には自分向けのメモであり、各々の技術については深く掘り下げない方針。たぶん「Hugo」とか「Firebase」とかでググったほうがここよりもっと詳しい情報があるでしょう。

Hugo

Hugoは、markdown記法で書いた記事をローカル(もしくはCI)上でHTML化してくれるソフトウェア。
静的サイトジェネレーターと呼ばれているみたい。
ページ数が膨大でも静的ファイルなのでCDNなどを利用すれば負荷に強い、というメリットが得られますが、個人的にはmarkdown記法で記事が書けて、その記事であるコンテンツ部分を後で再利用しやすいよう分けられて、LAMP環境構築の手間がいらない点が気に入っています。DB使っちゃうと引っ越しが大変だし。

今回、久しぶりに触ったら色々進化しており少しだけはまった。
手軽に作りたかったのでテーマファイルを利用しているんだけど(テーマはkeeplt)、テーマ内でSCSSを使っている。CSSプリプロセッサが必要…。
少し調べたら、Hugo Extendedなるものが必要とのこと。インストールしなおして解決。

Firebase

FirebaseはGoogleが買収したクラウドサービス。「包括的なモバイル 開発プラットフォーム」などと紹介されているが、よくわからない。
ようするに、モバイルアプリなどのバックエンドとして利用できるもので、もちろんウェブも利用できるし、「Functions」という機能を使えばJavaScriptをサーバーサイドスクリプトとして実行できたりする。
しかも、無料でできる幅がかなり広い。有料プランに移行したとしても他社のサービスよりは安く感じる(回し者ではないですよ)。
ここでも個人的な意見を言うと、簡単に自分のドメイン接続できてしかもSSLも使えて設定とかコマンドとかがシンプルな所が好きです。AnalyticsとかGoogleのサービスと統合してるところもよい。
しかし、これ使い始めて感じるのがFirebaseのコマンド群をnpmで入れて、接続時にサーバーと認証走って(OAuthだっけかな?)コマンド発行して…という一連の流れが古参のウェブデベロッパーとしては感慨深いものがあるわけですよ。いまさらながら。
FTPだってパスワードなり鍵認証なりを通化してコマンドでファイルをアップしている点は同じなんですがね。

HugoとFirebaseでブログ

もう、たくさんの解説サイトがあるのでここでは詳細は省きます。
…というのもなんなので、解説記事はいずれ書きたい。

さらに

過去にいじった時はCircleCIを利用してサイト更新を自動化していた。けど、今回HugoのバージョンがExtendedになったせいでそのままではその時のDockerfileが使えない…いずれ時間がある時に調整しよう。

CIで更新のイメージは、Dockerで仮想環境をCI上に展開し、GitHubのフックを利用してCIに更新させる感じです。
要するにhugofirebase deployのコマンドをCIにさせるという…なんという横着。
まあ、GitHub上でバックアップできて、いつでもどこでも更新しやすくなるっていうメリットはあるんですがね。

最後に

静的サイトジェネレーターっていうのはなにも新しいものではなくって、結構昔から似たようなものはあった。
その昔、adobeのcontributeってソフトがあってですね…そのソフト用のテンプレ作る商売してたなあ。あれどうなったんだろうなあ。