重い腰を上げ、Zolaを使ってサイトを書き直した

いやまたサイトを作り直したという話です。今度はZolaというRustの静的サイトジェネレータを使ってみた

4年ぶりの更新。さすがにおかしいだろ。あと技術に関することは一切書いてないのでZolaの使い方を知りたい方はすいません

入念にバックアップを

不注意、式年遷宮、若気の至りなどが何度も発生してサイトは吹き飛びまくっており、もはや大したデータは残っていない。でも、突レさんの同人誌の感想が消えたのは本当に悲しかったし、同じように今後人と関わって文章を書く機会があったとき、そういうデータが消えてしまうのはよくないと思った

他にもバックアップの動機はあって、2年ほど前(2021-10~)から思考のまとめとしてつけている毎日の日記(プライベートすぎて公開はできない)が消えるとかなりダメージが入る

バックアップにはSyncthingというP2P的にファイル共有ができるソフトを使っている。私の持っている端末はWindowsマシンのHNO3とWindows SurfaceのZnO、UbuntuサーバのHCl、AndroidのSiO。日記データはHNO3とZnOで、サイトのデータはHNO3とHCl、ZnOでそれぞれ共有している。あとは編集の利便性を上げるためにHNO3とZnOのWSLでも日記を共有しているけど、こちらにバックアップの意図はない

GoogleもGitHubも怖い

こういうバックアップを取っておくなら普通はGoogle DriveとかOneDriveとか大企業のサーバに預けたり、日記程度ならGitHub Pagesでサイト公開までできてしまうのでそれを使えばいいのだけど、私にそれは難しい

しころみ🔞というTwitterアカウントで特殊(?)性癖エロを描き続けていてそろそろ2年くらいになる。ただのエロではなくて、若干キャラクターが少女寄りだ。GoogleやMicrosoftみたいなのがある海外の許容するエロって「やたら肩幅のあるがっしりしたねーちゃんが股かっ開いてオーオー言ってるの」だけって感じで、ロリ絵師はMastodonとかPatreonとかで本当にひっそりと生きている。『少女が我慢できなくなって自らの小さな胸の先を……』みたいなのを私が投稿してGoogle様にバレた日にはGmailがBANされ、すべてのサービスにログインできなくなってしまう。同じ理由で私はOneDriveも使っていない

GitHub Pagesでも明確にポルノを禁止している(🔞は別に禁止してない)。実際に🔞な内容を上げるときはみんな『ポルノではない』と一応断っているわけだけど、前述の通り私の絵は海外だとポルノに見做されかねないから、GitHubにお世話になっている身としてあんまりPagesにエロを上げるのは憚られる。あと、Stable Diffusionを使って性癖画像作れないかなと思って作ってみたら本当に写真みたいなのが大量に生成されてしまって面白かったのでPixivに上げたら何時間もせずにBANされた。マジで怖かった。そういうわけで公開するなら自分でやったほうがいいのかなという感じ。法律のほうが厳しくなって日本国籍BANになる、なんてことはないだろう……

ベタ書きをやめよう

最初にサイトを作ったときの色々はよく覚えていない。chobi netがCGI付きで無料、広告すらなしとかいう頭のおかしい良サービスで、有料プランもかなり良心的だったので、その上でPerlの自作テンプレートエンジンを作り、各記事のHTMLをそのまま流し込んでサイトにしていた。実際小規模で決め打ちなサイトだったらそれで良かったと思うんだけど、記事の内容にCSSとかが依存しだすと地獄になる。例えばspan.my-emphみたいなのを記事内にベタ打ちするとあとで書き換えたくなったときにすごく面倒だ

サイトの更新も面倒になってきて、次に更新するなら式年遷宮だなあみたいな感じになってしまう。式年遷宮とはサイトの内容をまるきり書き直すことだ。当然コストがかかるし、結局サイトに残ってるのは黒歴史だけなのだから要らないや、ということでデータも吹っ飛ぶ。次にあるのは「どうせ式年遷宮していいサイトに直すんだからHTML直打ちでいいや」だ。サーバも自分の部屋の片隅の安いPCで動くNginxになった。速いからね

式年遷宮の最終形態として「CMSを作ろう」という壮大な野望とかもあった。DBとかPerlとか習熟して最強のCMSを作るぞ、なんならプログラミング言語も作っちゃおうかなあ、みたいなやつ。今でも夢から消えていないけど、サイト公開の前提条件にするには重すぎるだろ

埒が明かないのでZolaを使うことにした。Rust製の静的サイトジェネレータだ。最近はRustにお熱なのでちょうどいいし、感覚もかなり手に馴染む。それにMarkdownに無理にHTMLを込めなければ、記事の内容にCSSが依存したりすることはない。移行もMarkdown部分を移すだけなのでそれなりに簡単だ。メタ部分の変換は、まあTOMLなので難しくないだろう……

デザイン

できるだけシンプルにしたかったので、前サイトと同じようなペラ紙っぽいデザインとコードを目指した。ただ、和欧間空白がないと気持ち悪いのでそれだけあとからJSで追加する形式にしてみた。もしかしたら全てのコードをそういうふうにZolaで変換するのは可能かもしれないんだけど、よく分からなかったので、やめた。本物の空白を入れないと改行がおかしくなるので1/6emの空白を入れて、しかし本物の空白ではないのでuser-select: noneを指定した

文字の厳格な大きさ指定もやめた。デフォルトより少し大きめという意味を込めてfont-size: 1.2emとだけ置いて、あと見出しをバカでかくしたかわりに太字をやめて、でもそのくらいだ。フォントも同じく指定をやめた。Google Fontsとかだったら忖度を込めてGoogleのPage Speed Insightsもスコア良くなるかなと思ったらそんなこと全然なくて65%だったし、サブセットフォント生成もコストの割に嬉しくないなと思ってやめた

あとは最近目が疲れ気味ですべてのページをダークモードにしがちだったので、自分のサイトもダークモードにしてみた。暗い配色の個人サイトってエロ系で結構あったよね

他サイト

妹のサイトもドメインが失効して悲しいことになっていたので、サブドメインに移した。eraine.momota.pwでアクセス可能。なんかファイル名が正規化されていたのでもとに戻したりなどした。きせかえサイトもeraine.momota.pw/kisekaeでちゃんと動く。久しぶりに遊んだら楽しかった

arai-no-math.mlはもはや有料ドメインが取りづらいとかの理由もあるし、今後更新する予定もないし、誰も読んでないので閉鎖。まあ仕方ないね

ギャラリー

Zolaはギャラリーサイトとしても使えるらしい。フォルダを用意してimdex.mdにtaxonomyを入れておくといい感じに管理してくれて、page.assetsで全部参照できる、らしい。実際にやってみた。タグページを作るのがだるいので考える

終わり

なんだかんだやってみたら割とすんなりできてよかった。次のサイトジェネレータは何になることやらといった感じだけど、あと5年は大丈夫なんじゃないかな