ブログを Astro の SSG から EmDash へ移行しました
Astro の静的サイト生成で運用していたこのブログを、Cloudflare 上で動く CMS の EmDash へ移行しました。移行した理由と、移行後に行ったキャッシュや読み込み量の調整を簡単にまとめています。
日々の開発で得た知見や、実験的な実装、日常を記録するブログです。
Astro の静的サイト生成で運用していたこのブログを、Cloudflare 上で動く CMS の EmDash へ移行しました。移行した理由と、移行後に行ったキャッシュや読み込み量の調整を簡単にまとめています。
Cloudflare Workers の Python 対応が 2026 年 9 月に正式版になりました。pywrangler でひな形を作り、FastAPI アプリをローカルで起動してから Cloudflare へデプロイするまでの手順を実際に動かして確かめ、同梱されるパッケージの版と Python のバージョンの決まり方をまとめます。
EmDash には CLI と MCP サーバーの両方が最初から入っています。blog-cloudflare テンプレートで作ったサイトを Cloudflare Workers と D1 と R2 で動かし、同じ「記事を作って」という指示を CLI と MCP に渡して、公開状態の違い、認証で必要になるもの、不正な入力がどこでエラーになるかの違いを確かめました。
GAS の排他制御を確かめたくて、書籍の貸出を記録するウェブアプリを Google Apps Script とスプレッドシートで作りました。LockService でロックを取得していても、その外で読んだ値を判定に使うと更新が 2 回実行されます。同じ本の貸出を 2 回実行させて確かめた結果と、判定に使う値を読む位置の決め方を書きます。
Claude Code のプロンプトキャッシュは 1 時間で切れます。前に書いた Hook は、戻ってきた最初の入力を止めて /clear を促すものでした。新しく入った Claude Mods には `$.clock.every` があるので、離席中にタイマーを動かして、切れる前に自動で compact する mod を作りました。
HTML から決まった項目を取り出すコードは、対象のページの構造が変わると何も取れなくなります。CSS セレクターが一致しなくなった時点で候補をコード側で作り、どれが見出しかを選ぶ判断だけを TypeSafe の Jev に送る仕組みを作りました。架空のニュースサイトの一覧ページと記事ページで動かし、選ばれたセレクターを採用してよいかを前回の件数で確かめた結果と、1 回あたりの入力とコストをまとめます。