Astroに移行
移行
本ホームページを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.mdx
- index.mdx
これは次のように出力される。
- a/
- index.html
- b/
- index.html
- index.html
さて、ここでa.mdxに次のアンカを書くとする。
[Bへ](./b)
[戻る](./)
これはastro devやastro previewでは正しく動くが、本番環境では正しく動かない。 正しく動かすためには、当然ながら、次のようにしなければならない。
[Bへ](../b)
[戻る](../)
フレームワークを使う弊害だなあ、と感じた。
■