天狗会議録
Posts Pages About
Astroに移行
2024/09/26

移行

本ホームページをAstroに移行した。

本ホームページは愉快な変遷を辿っている。 まず、レンタルサーバ時代、PHPを使ってSSRを行っていた。 そのようにしたのは、東方の機体表のリプレイをリポジトリ上に置かないためであった。 しかし、ある程度知識がついてくると、リプレイをCloudflareのR2上に置き、ページをGitHub Pagesでホストするように変えた。 初めはC#、次にNode.jsでSSGを行っていた。 そのようにしたのは、React.jsなりVue.jsなりがオーバースペックに感じていたからだ。 それらフレームワークはウェブアプリケーションには有用だが、所詮静的なホームページには仰々しい。 Astroが台頭した当時も、「ああまたでかいのが現れたのね」とあしらっていた。

しかし、AstroはSSGフレームワークである。 React.jsなりVue.jsなりの吐き出す巨大なページに異を唱えるフレームワークである。 Markdownで記事を書ける。 Node.js系のライブラリも使える。 つまり、自力実装したジェネレータの完全上位互換である。 乗り換えない理由がない。 ということで、Astroに乗り換えることとなった。

不満点

Astroには概ね満足しているが、ことパス周りには不満を抱いている。 例えば、次のようなファイルがあったとする。

これは次のように出力される。

さて、ここでa.mdxに次のアンカを書くとする。

[Bへ](./b)
[戻る](./)

これはastro devやastro previewでは正しく動くが、本番環境では正しく動かない。 正しく動かすためには、当然ながら、次のようにしなければならない。

[Bへ](../b)
[戻る](../)

フレームワークを使う弊害だなあ、と感じた。