驗證 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 才能從 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 頁面的 windowed 分頁: 從第 1 頁開始,只能點擊第 1、2、…、最後一頁。若要到達較深的頁面,請透過 URL 中的
?page=N載入,或反覆點擊「下一頁」。 - Astro 開發模式與建置模式:
pnpm dev也可以用,但 URL 狀態的行為應針對正式建置進行驗證,因為正式環境送出的是內聯腳本。