将 Milanote 公开共享画板转换为经过 Zod 验证的 MilanoteDocument v1。项目以单一 Cloudflare Worker 部署:
/:VitePress 中文文档/playground:React + shadcn/ui 交互控制台/api/search?url=...:默认返回compact精简视图/api/detail?url=...:默认返回完整MilanoteDocumentv1
Milanote 的上游接口未公开,响应可能变化。只应解析用户有权公开访问的画板。
const shareUrl = "https://app.milanote.com/board-id/shared-view?p=permission-id";
const query = new URLSearchParams({ url: shareUrl });
const compact = await fetch(`/api/search?${query}`);
const full = await fetch(`/api/detail?${query}`);两个端点都支持 view、include 与 exclude 字段筛选。筛选后的
data 是 partial DTO,不保证通过完整的 milanoteDocumentSchema。
**破坏性路由变更:**旧版
/api/search的完整响应行为已迁移到/api/detail。 依赖完整文档的调用方应切换路由;继续使用/api/search会收到精简响应。
需要 Node.js 22.18+、pnpm 11。
pnpm install
pnpm run dev
pnpm run ready
pnpm run deploy文档开发与预览:
pnpm run docs:dev
pnpm run docs:previewdocs:dev 与 docs:preview 只提供文档站;需要同时访问 /playground 和 Worker API 时,
请使用 pnpm run dev。
应用运行时不需要环境变量。Cloudflare 自动部署仍需要
CLOUDFLARE_API_TOKEN 和 CLOUDFLARE_ACCOUNT_ID。
完整的快速开始、HTTP API、
字段选择器、Zod 模型、Parser SDK、安全缓存和部署说明位于
apps/docs,部署后由站点根路径提供。