Files
sproutblog/README.md
2026-06-24 22:10:27 +08:00

60 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SproutBlog
Cloudflare Worker + D1 + 静态资源Vite/React SPA。Worker **仅处理 `/api/*`**,前端构建产物输出到 `dist/`,由 `[assets]` 提供;`wrangler deploy` 一次部署 API + 前端。
## 功能
- 公共博客React + React Router
- Markdownmarked + KaTeX + highlight.js + Mermaid按需动态加载
- 简单后台 CRUDCookie / Basic Auth 与原先一致)
- 评论cwd-widget
- 手机与桌面适配(沿用原样式)
## 初始化
1. 创建 D1`wrangler d1 create sproutblog`,把 `database_id` 写入 `wrangler.toml`
2. 应用迁移:`wrangler d1 migrations apply sproutblog --remote`
3. 安装依赖:`npm install`
## 开发
- 一体化(会先 `vite build` 再同时拉起 Worker 与前端开发服务器):
- `npm run dev`
- Worker默认 `http://127.0.0.1:8787`(读取 `dist` 静态资源)
- 前端:`http://127.0.0.1:5173``/api` 代理到 `8787`
- 仅 Worker需已有 `dist``npm run dev:worker`
- 仅前端 + API 代理:`npm run dev:client`
- 修改 React 后若要在 `8787` 上看到最新静态文件,请再执行 `npm run build`
## 部署
```bash
npm run deploy
```
等同 `npm run build && wrangler deploy`
## 环境变量
- `SITE_TITLE` / `SITE_TITLE_EN` / `CWD_API_BASE`:可在 `wrangler.toml``[vars]` 中配置。
- `ADMIN_PASSWORD`:生产环境建议使用 `wrangler secret put ADMIN_PASSWORD`,勿提交仓库。
- 前端可选:`VITE_CWD_SITE_ID`(构建时注入;否则以 `/api/config` 中的 `CWD_SITE_ID` 为准)。
## API 说明(节选)
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/config` | 站点公开配置 |
| POST | `/api/admin/session` | 设置后台 Cookiebody: `{ token }` |
| GET | `/api/posts` | 列表;未登录仅返回已发布文章 |
| GET | `/api/posts/:idOrSlug?bump=1` | 详情;`bump=1` 且匿名访问已发布文章时增加浏览量 |
| POST/PUT/DELETE | `/api/posts` … | 写操作需鉴权(与原先一致) |
## 目录结构(节选)
- `src/worker` — Worker 入口
- `src/api` — 路由与 HTTP 处理
- `src/db` — D1 访问
- `client/` — Vite + React 源码,构建至 `dist/`
- `migrations/` — D1 SQL