2023-02-19
数年前から自分のブログのためにHugoというテンプレートシステムを使っているのですが、このシステムを学び、内面化するのに時間がかかるという同じことに帰結し続けました。Hugoはなかなかいいし、他のものよりはいいと思っていたのですが、テンプレート・システムが不必要に複雑だったんです。どうやらZolaの作者も同じように感じていたようです。
'このツールとそれを使っているテンプレートエンジンは、以前6つ以上のサイトで使っていた(非常識な)Golangテンプレートエンジン、つまりHugoに対する激しい嫌悪感から生まれたものだ。'
様々な理由から、冬休みにRustを学び始めました。あまり進まず、その後忙しくなったので、棚上げにしていました。数週間前、restでテンプレートシステムを作れるかもしれないと思った。
いくつかの良いアイデアとスタートを見た後、私はZolaに出会いました。それはすでに構築されていて、とても良さそうでした。それで、私はZolaを使うことにしました。実際、Zolaを使い始めてからブログを立ち上げるまでの時間は、ずっと簡単で、ずっと早かったです。Zolaを使い始めてから24時間くらいでブログを立ち上げることができました。もちろん、Hugoを知っていたことがスタートダッシュに役立ったのですが、それでもZolaはHugoよりずっと簡単でした。残念ながら、Zolaは未来に設定されたブログ記事には対応していません。つまり、未来の日付を入れても、とにかく公開されてしまうのです。HugoもZolaもテンプレートシステムなので、新しい記事はすべて手動でプッシュアップしなければなりませんが、あらかじめブログを大量に書いておくといいでしょう。そうすれば、それぞれの記事を考えて移動したり(非公開ディレクトリに)、日付を変更したりすることなく、手動でプッシュすると、それらがプッシュされるようになります。
特に、新しいポッドキャストで実験しているのですが、ポッドキャストは毎日配信されるので、毎日プッシュしなければならないのです。手動でプッシュするのが面倒なので、これをサーバー上で実行し、サーバーにプッシュしてもらうことにしました。
AWSのcronジョブでサーバを起動し、サーバ起動時にスクリプトを実行して、テンプレートシステムを処理し、私のためにプッシュすることができます。
理論的には良いのですが、実際にやってみるとちょっと大変でした。先週の金曜日にサーバーを立ち上げた時点で、90%は完成していました。1つだけつまずいたのは、gitでした。どういうわけか、サーバーの起動時にブログの最新の変更点を自動的にレポからダウンロードするようにgitを設定することができず、これが致命的でした。これがないと、自動的に実行されないのです。
しかし、それにもかかわらず、それは非常に困難で、私は最終的に、別の場所に書いたスクリプトとは対照的に、システムのdefileから直接gitコマンドを実行する解決策を見つけました。これで、プロパティを持つファイルを適切なディレクトリに移動し、テンプレートビルドコマンドを実行し、取得したファイルをリポジトリに戻し、新しいファイルをS3リポジトリにプッシュし、クラウド形成を更新して誰もが最新バージョンを得られるようにするなど、他のすべてを行うことができるようになったのです。まだ全部は完成していませんが、90%は完成していますし、最後のステップはほとんど些細なことです。