chore: sync local changes to Gitea
This commit is contained in:
62
README.md
62
README.md
@@ -1,27 +1,59 @@
|
||||
# SproutBlog
|
||||
|
||||
Cloudflare Worker + D1 的极简博客。
|
||||
Cloudflare Worker + D1 + 静态资源(Vite/React SPA)。Worker **仅处理 `/api/*`**,前端构建产物输出到 `dist/`,由 `[assets]` 提供;`wrangler deploy` 一次部署 API + 前端。
|
||||
|
||||
## 功能
|
||||
|
||||
- 公共博客页
|
||||
- Markdown 渲染
|
||||
- 简单后台 CRUD
|
||||
- 手机和电脑自适应
|
||||
- 公共博客(React + React Router)
|
||||
- Markdown(marked + KaTeX + highlight.js + Mermaid,按需动态加载)
|
||||
- 简单后台 CRUD(Cookie / Basic Auth 与原先一致)
|
||||
- 评论(cwd-widget)
|
||||
- 手机与桌面适配(沿用原样式)
|
||||
|
||||
## 初始化
|
||||
|
||||
1. 创建 D1 数据库:
|
||||
`wrangler d1 create sproutblog`
|
||||
2. 把生成的 `database_id` 填到 `wrangler.toml`
|
||||
3. 应用迁移:
|
||||
`wrangler d1 migrations apply sproutblog --remote`
|
||||
4. 本地运行:
|
||||
`npm run dev`
|
||||
1. 创建 D1:`wrangler d1 create sproutblog`,把 `database_id` 写入 `wrangler.toml`。
|
||||
2. 应用迁移:`wrangler d1 migrations apply sproutblog --remote`
|
||||
3. 安装依赖:`npm install`
|
||||
|
||||
## 可选后台密码
|
||||
## 开发
|
||||
|
||||
如果要给 `/admin` 加密码,设置 `ADMIN_PASSWORD`:
|
||||
- 一体化(会先 `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`。
|
||||
|
||||
`wrangler secret put ADMIN_PASSWORD`
|
||||
## 部署
|
||||
|
||||
```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` | 设置后台 Cookie(body: `{ 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
|
||||
|
||||
Reference in New Issue
Block a user