Files
jiang13-forum/docs/rebuild-spec/09-ssr-progress.md
2026-08-30 03:32:33 +08:00

150 lines
5.1 KiB
Markdown
Raw 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.
# 09 · SSR 重构进度与路线图
> **读者**:产品方 / 实现 AI
> **分支**`rebuild/gitea-ssr``main` = SPA 对照)
> **验收清单** [02-features.md](02-features.md)
> **架构** [08-gitea-ssr-architecture.md](08-gitea-ssr-architecture.md)
> **维护约定**:每次「继续」开新刀前更新本文「当前指针」;功能勾选以 `02` 为准,本文管阶段与刀序。
---
## 当前指针
| 项 | 值 |
|----|-----|
| **上一刀** | SSR 抽奖帖 `lottery`(已推送 `e06c548` |
| **下一刀** | **Admin `/admin/users`**(禁言 / 验证 / 调积分)— 见下文「下一刀实现提纲」 |
| **工作区** | 应干净;有未提交改动时先处理再开新刀 |
---
## 一句话状态
论坛核心闭环安装、认证、Feed、五种帖类型、评论、私信、友链、审核、回收站、基础设置、备份**已迁完**。余量主要是 Admin 用户/徽章/媒体、成长体系、OIDC/存储产品化与体验打磨。
```mermaid
flowchart LR
core[核心论坛已迁]
admin[Admin用户徽章媒体]
growth[等级徽章防刷]
polish[主题伪静态编辑器]
deferred[Gitea码桶后置]
core --> admin --> growth
admin --> polish
deferred -.-> admin
```
---
## 已完成里程碑
### 公开站
| 域 | 状态 |
|----|------|
| `/install`、登录/注册/忘记密码、opaque session | 已迁 |
| Feed / 板块 / 搜索 / 三栏 / 右栏 widgets | 已迁 |
| 帖详情:赞藏举报、门控、审核横幅、修订历史 | 已迁 |
| 帖类型:`normal` / `question` / `poll` / `bounty` / `lottery` | 已迁 |
| 评论:发评/回复/赞/私密/编辑删除/@/回复通知 | 已迁(扁平楼层;嵌套树未做) |
| 私信/系统通知、收藏、个人中心、用户页 | 已迁 |
| 友链前台 + Admin含复检 | 已迁 |
| 站点单页 | 已迁 |
| `/health``robots.txt``sitemap.xml``/uploads` | 已落地(`02` §O 已勾) |
### Admin
| 路径 | 状态 |
|------|------|
| dashboard / boards / moderation / reports / trash | 已迁 |
| settings品牌、限流、敏感词、SMTP、侧栏、SQLite 备份 | 已迁 |
| friend-links / pages | 已迁 |
| **users / badges / media** | **未迁** |
| settingsOIDC / Gitea / 存储 / 伪静态 Tab | **未迁** |
### 近期提交(摘)
`poll` → SQLite 备份 → 友链复检 → `question``bounty``lottery``e06c548`
---
## 未完成分层
### P0 — 小清理(可夹带)
- 发评路径挂 `RateLimiter` `comment` 动作服务层已有键web 未挂)
- Logo/Favicon/OG 上传、头像裁剪等声明为未做的边角
### P1 — 推荐刀序(服务层多半已齐)
1. **Admin 用户** ← 当前指针
2. Admin 徽章定义 + 授予/撤销
3. Admin 媒体列表/删除
### P2 — 成长与防刷
- Exp → Lv110、自动徽章、短龄同 IP 互刷拒绝分成(`02` §H
### P3 — 体验 / 编辑器(可砍或长期)
- 主题、侧栏折叠、虚拟滚动、`feed_list_style`、伪静态 Admin
- TipTap / Markdown 双模(现行为 textarea + 门控)
- 游客评论、评论嵌套树(建议:全局 `#floor` + 缩进,编号语义先写入 `06`
- 修订 diff、完整 Limits 字数
### 后置(不阻塞验收)
- KGitea `/projects`
- LOIDC 产品化 Admin CRUD
- MS3 热切换、WebP thumb 全链路
---
## 默认「继续」刀序
| 序 | 刀 | 产出 |
|----|----|------|
| ✓ | 五种帖类型 + 备份/复检 + §O 勾选 | 核心闭环 |
| ✓ | 本文 `09` | 可查阅进度 |
| → | Admin `/admin/users` | 禁言/验证/调积分 |
| 3 | Admin `/admin/badges` | 徽章 CRUD + 授予 |
| 4 | Admin `/admin/media` | 媒体列表删除 |
| 5 | 等级/自动徽章 **或** 防刷分成 | 按当时偏好 |
| … | P3 / 后置 | 需明确点名再开 |
---
## 下一刀实现提纲Admin 用户管理
> 确认「继续」后按此实现;细则副本:[plans/admin-users.md](plans/admin-users.md)。不恢复论坛管理 JSON `/api` 为 UI 主路径。
### 范围
- 路由:`GET /admin/users``POST /admin/users/:id/ban``/verify``/points`
- 复用:`UserService.ListUsers` / `BanUser``SetVerified``PointsService.AdminAdjust`
- 模板:`templates/admin/users.tmpl` + `admin/nav` 入口
- 列表分页、关键词展示角色、积分、禁言、verified
- 操作:禁言/解禁、切换认证、调积分delta + 备注CSRF + PRG
- 规格:勾选 `02` §H「管理员调整积分、设定等级」中与积分/认证相关部分(等级 UI 可后置);`06` 标明 `/admin/users` 已迁
### 不做(本刀)
- 设定 Exp/等级 UI可只读展示 level
- 徽章授予(下一刀 badges
- 恢复 `/api/admin/users` 给浏览器
### 验证
- `build.bat`;冒烟:列表 → 禁言 → 调积分 → 认证开关
---
## 如何查阅
| 问题 | 看哪里 |
|------|--------|
| 某功能做没做? | [02-features.md](02-features.md) 复选框 |
| 现在该干什么? | 本文「当前指针」 |
| 路由迁没迁? | [06-pages-ux.md](06-pages-ux.md) §1 |
| 目录约定? | [08-gitea-ssr-architecture.md](08-gitea-ssr-architecture.md) |