ブログを移行した
このサイト=シュウマイポップ体は昨年末にドメインをとって、Obsidian Publishでホスト・運用されていたのだが、この度Astro製・Cloudflare workersホストになった。
ほとんどAstro Paperというテンプレートを元に作成されている。テンプレートは恵み。
ただObsidian Publishほどの手取り足取りではなく「なんでうまくいかないんだ……」みたいなことが多発したので面白かった。
なぜ移行したのか
Obsidian Publishを契約したときも思っていたのだが、自分で勉強してサイトを作れたらかっこいいなと思っていた。しかし色々と制約があり、勉強から始めていたらいつまでたってもサイトを作れないので、まずコンテンツを作るためにObsidian Publishを契約した。
これはかなりいい選択だった。
Obsidian Publishは本当に書いてアップするだけでよく見た目も可愛くて素晴らしい(Obsidian Publishは本当に書いてアップするだけでよく見た目も可愛くて素晴らしいといいたいだけの記事まで書いた)。
料金はかかるけれどトレードオフでめちゃくちゃすべてが免除されている。
しばらくこれで日記を書いたり文章を書いたりすることができてきて、8月にはブローガストというブログを毎日書く催しもやった。
われながら何かを書いて発表する癖はできたんじゃないかと思う。
さらに、
- ブローガストによって他の人のサイトを色々見たので、もうちょっと特定サービスへの依存度の低いサイトに作り替えたいなという気持ち
- ObsidianからPublishっぽくマークダウンを変換して送ってくれるプラグイン(Enveloppe)があるらしいと知る
- SNSでObsidian Publishから移行した事例をいくつか見てがんばるぞ!と思った
(事例1: PlasticHeart氏のObsidian Publishをやめた、事例2: Minerva氏のnocturneを開設) - ミンゲイインターネットに登録したかった。まだ登録していません。
等の理由が重なり、8月~9月いっぱい少しずつサイト構築をしていたという感じ。
すこしは勉強したものの、テンプレートも使うしわからないことをLLMに聞くので、一から作ったというものでもない。
でもまあPublishからのセカンドステップとしては良かったと思う。
なぜAstroにしたのか
昨年ブログを作ろうかな~と調べているうち、どうやらブログはいま静的サイトジェネレータというので作るらしい、Astroが速いしHTMLとJavaScriptで書けるらしい、とうっすら理解したのでチュートリアルをやりはじめた(チュートリアルが可愛いのもとっつきやすかった)。
HTMLとJavaScriptは昔すこしだけ触ったことがあり、すこしでも知識があるほうが何かと良いだろうと思った。
ただ使っているEnveloppeというプラグインは、もともとHugoやJekyllを想定して作られたものだったらしい。少しそこがもたついたので、Hugoもよかったのかもしれません(どうせ知識はほぼないので)。
迷った点
テンプレートをどうする
テンプレートを選んでデプロイするだけなのでさほど難しいことはなさそう、と思っていたらこのテンプレート選びが結構難しかった。
Astro Cactus
最初はこのテンプレートを使った。シンプルで見た目がよかったのと、Webmention機能がフォローされていたので。 ただmarkdown用のプラグインが最初から入っていて、Obsidianの記法を変換するプラグインを入れると衝突するっぽく、なんか変なことになってきて最終的にわけがわからなくなり頓挫。Astro Modular
このテンプレートはVaultをそのままCMSにしてしまおうという思想を元に作られている。
どういうことかというと、自分のところにテンプレートをクローンしたら、そのディレクトリをVaultとして開くとプラグインもウィザードも全部入りになっている。そのままサイトの設定ができて、記事を書いたらただプラグインでpushするだけでいい。Obsidian記法用の設定は最初から入っているし、コード画面はほとんど見なくていい。すごすぎる。
良いなと思ったのだが、自分の場合どうしてもスマートフォンから記事を書くことが多く、Vaultを分けると作業に支障が出る。
また、メモを消さないためにObsidianを使っているところがあり、そういう意味でもVaultを一括管理しておきたかった(分けるとどちらかを消しやすくなってしまう)。特定のサービスへの依存度を下げたいのにこれがないと書けないという状況になるのもよろしくない。
苦渋の決断により使用をやめた。
Astro Paper
シンプルで見た目がよく、どうやらプラグインも衝突しないらしいので選んだ。
上記2テンプレートよりも設定が簡単だったような気がする(2個もやったから慣れただけかも)。
Webmention機能を入れたかったけど登録だけでまだ挫折している。
ハイライト、数式、見出しの字下げ(H1から書いているから)、改行1回で反映されるよう対応、内部リンクの対応、あとは見た目の趣味いくつかの対応(自分で必要な絵を描く、RSSリンクの場所を変える、TOCの追尾は作ってもらいました)が必要だった。
前の記事移行問題
YAMLをほとんどつけていなかったので、ObsidianでLinterプラグインを入れてpubDatetimeとtitleを入れる作業が発生した。
内部リンク問題
enveloppeが画像周りはだいたい綺麗に変換してくれてありがたかったが、内部リンクがうまくいかなかった。enveloppeが内部リンクを
[XX](xx.md)
と変換してしまうことが問題らしい(Astroではリンクにmdが入っていると404になるらしい)。
画像を使わないのであれば(あるいは外部のストレージからURL参照で書いているなら)enveloppeの内部リンクの変換をオフにすればうまくいくんじゃないかと思う。私はenveloppeが変換した内部リンクを、さらにパスで書き直してくれるプラグインを作ってもらいました。
投稿フロー
- Obsidianで記事を書く。
- ObsidianのenveloppeプラグインでHTMLに変換してgithubにpushしてもらう。
- Cloudflare workersがよしなにやってくれる。
もう少し作りたい
動くサイトは構築できたので、少しずつ(今度は自分だけの力で)ページや機能を増やしてみようかなと思っている。
つぎはBlender勉強して、マトリョーシカを開けられるアニメーションをサイトに載せたい。