pardonned の変更を検証する
静的 Astro サイト — サーバランタイムはありません。ビルドされた dist/ を実際のブラウザで検証します。
ビルド & サーブ
pnpm build # data/pardonned.db が必要です(CLAUDE.md 参照)
cd dist && python3 -m http.server 8123 --bind 127.0.0.1 # バックグラウンドで実行
ブラウザ操作
playwright はすでに devDependency(スクレイパーで使用)としてインストールされており、Chromium もセットアップ済みです。リポジトリルートに使い捨ての .mjs ファイルを作成し(node_modules から playwright を解決させるため)、node で実行した後、削除します。
主要なフローはページ上のインラインスクリプトにあります(例:/search/ のフィルタ/並べ替え/ページネーションの状態はすべてクライアントサイドで管理され、history.replaceState を介して URL パラメータに同期されます)。
注意点
- PostHog のスタブ問題: ビルドされたページには実際の PostHog スニペットが埋め込まれており、
window.posthog = eによってaddInitScriptで設定したスタブが上書きされます。posthog.captureの呼び出しを監視するには、ロード後にパッチを当ててください:page.evaluate(() => { window.posthog = { ...window.posthog, capture: (n, p) => window.__ev.push({n, p}) } })。 - /search のウィンドウ化ページネーション: 1ページ目からクリック可能なのはページ 1、2、…、最後のページのみです。深いページにアクセスするには、URL で
?page=Nを指定するか、「次へ」を繰り返しクリックしてください。 - Astro の dev と build の違い:
pnpm devでも動作しますが、URL 状態の挙動は、インラインスクリプトがそのまま出荷される本番ビルドに対して検証する必要があります。