docs: record media.ts in src/lib AGENTS.md

This commit is contained in:
2026-09-12 09:56:41 +08:00
parent 13570689dd
commit 558fe0487b
+3 -2
View File
@@ -2,11 +2,11 @@
## Purpose
跨層基礎工具:環境變數、DB 連線、後台認證、表單驗證、AI 生成、Markdown 處理。
跨層基礎工具:環境變數、DB 連線、後台認證、表單驗證、AI 生成、Markdown 處理、媒體 URLR2 清理
## Ownership
- 擁有 `src/lib/` 個檔案:`env.ts``db.ts``auth.ts``form.ts``ai.ts``markdown.ts`
- 擁有 `src/lib/` 個檔案:`env.ts``db.ts``auth.ts``form.ts``ai.ts``markdown.ts``media.ts`
- 其他層(pages / data / middleware)只消費,唔好複製呢度嘅邏輯。
## Local Contracts
@@ -26,6 +26,7 @@
- `parseGeneratedPost(text)` 解析 `TITLE` / `CONTENT` / `META_DESC` 並用 `aiGeneratedPost` schema 驗證。
- `generateBlogPost(db, env, input)` 同步生成:`{ mode: "topic" }``{ mode: "next" }`(攞佇列下一個 pending);一律存 **draft** 並將關鍵字標記 `generated`。缺 `AI_API_KEY` / 未啟用時回 `{ ok: false, error }`,唔會 throw。
- **`markdown.ts`**`renderMarkdown``marked`,內容受信任所以**唔 sanitize**)、`slugify`(保留中文)、`autoExcerpt`
- **`media.ts`**:媒體 URL 同 R2 清理。`MEDIA_PREFIX = "/media/"``mediaUrl(key)` 砌對外 URL、`mediaKey(url)``/media/...` 取 R2 key(唔係前綴回 `null`)、`deleteMedia(env, url)` 刪除對應 R2 物件(外部 URL/空值唔理,失敗唔 throw)。
## Work Guidance