docs: 同步统一内容模型(分组对所有类型生效)

This commit is contained in:
2026-10-30 18:56:18 +08:00
parent c84c41dc7d
commit 58725caa95
3 changed files with 14 additions and 5 deletions
+4 -4
View File
@@ -99,9 +99,9 @@ README.md 运行、路由、库结构、登录说明
| --- | --- | | --- | --- |
| 页头滚动信息 | 启用开关、速度 8–120、条目增删/排序、标签与色调、占位符 `{count}` `{project}` `{status}` | | 页头滚动信息 | 启用开关、速度 8–120、条目增删/排序、标签与色调、占位符 `{count}` `{project}` `{status}` |
| 首页卡片 | 显示/隐藏、标题覆盖、预览条数、顺序、**新增分类**、**删除分类**(不可删的显示灰色按钮) | | 首页卡片 | 显示/隐藏、标题覆盖、预览条数、顺序、**新增分类**、**删除分类**(不可删的显示灰色按钮) |
| 内容 | 弹窗新增应用/海报/图文条目(选分区 + 分组);列表逐条编辑(含换分区/分组)与删除 | | 内容 | 弹窗新增应用/海报/图文条目(选分区 + 分组,分组可选「直属分区」);列表逐条编辑(含换分区/分组)与删除 |
| 分区 | 分区类型(应用/海报/图文)、标题、图标、色条、预览条数;首页卡片预览哪个分组;**分组新建/改名/显隐/删除** | | 分区 | 分区类型(应用/海报/图文)、标题、图标、色条、预览条数;首页卡片预览哪个分组;**任意类型的分组都可新建/改名/显隐/删除** |
| 侧栏导航 | 分类显示/隐藏、顺序、删除/新增;应用子分组单独显隐与排序,并可直接**新建子分组** | | 侧栏导航 | 分类显示/隐藏、顺序、删除/新增;**任意类型**的子分组单独显隐与排序,并可直接新建子分组 |
| 资料 | 头像 URL、名称、角色、简介、位置(应用到侧栏资料卡) | | 资料 | 头像 URL、名称、角色、简介、位置(应用到侧栏资料卡) |
| 系统 | 修改密码(清空所有会话)、下载备份(VACUUM INTO 快照) | | 系统 | 修改密码(清空所有会话)、下载备份(VACUUM INTO 快照) |
@@ -197,7 +197,7 @@ GET /api/backup SQLite 快照附件 需登录
| 多用户/角色 | 未做,当前单管理员 | | 多用户/角色 | 未做,当前单管理员 |
| 分区编辑 UI | 已支持标题/图标/色条/类型/预览条数(`PATCH /api/categories/{id}`);改类型会自动迁移条目 | | 分区编辑 UI | 已支持标题/图标/色条/类型/预览条数(`PATCH /api/categories/{id}`);改类型会自动迁移条目 |
| 条目移动 | 编辑弹窗里可直接换分区 / 分组(`PATCH /api/items/{key}` 的 `nodeKey`) | | 条目移动 | 编辑弹窗里可直接换分区 / 分组(`PATCH /api/items/{key}` 的 `nodeKey`) |
| 分组管理 | 已支持新建/改名/显隐/删除(删除级联组内条目);分组拖拽排序未做 | | 分组管理 | 所有类型的分区都可建组/改名/显隐/删除(删除级联组内条目);分组拖拽排序未做 |
| 登录限流 | 进程内计数,重启清空 | | 登录限流 | 进程内计数,重启清空 |
## 10. 约定与坑 ## 10. 约定与坑
+1 -1
View File
@@ -34,7 +34,7 @@ cargo run -- --root ./sites --host 0.0.0.0 --port 3000
### 登录与设置(v0.1.1 起) ### 登录与设置(v0.1.1 起)
- 登录是**页内弹窗**:点右上角用户图标;首次使用弹窗里是「设置密码 + 确认」(至少 8 位); - 登录是**页内弹窗**:点右上角用户图标;首次使用弹窗里是「设置密码 + 确认」(至少 8 位);
- 登录后点「站点设置」进入 `/admin`,可编辑页头滚动信息、首页卡片、内容(弹窗新增/编辑应用、海报、图文并选择分区/分组)、分区与分组(类型、标题、图标、色条、卡片预览分组、分组增删改)以及侧栏顺序、显隐; - 登录后点「站点设置」进入 `/admin`,可编辑页头滚动信息、首页卡片、内容(弹窗新增/编辑应用、海报、图文并选择分区/分组)、分区与分组(类型、标题、图标、色条、卡片预览分组;三种类型都支持分组,分组可增删改)以及侧栏顺序、显隐;
- 详情页的 `[编辑]` 只在登录后显示;保存后局部刷新,`updated_at` 乐观锁; - 详情页的 `[编辑]` 只在登录后显示;保存后局部刷新,`updated_at` 乐观锁;
- `/admin` 的「系统」页可以改密码、下载整库备份(`VACUUM INTO` 快照); - `/admin` 的「系统」页可以改密码、下载整库备份(`VACUUM INTO` 快照);
- 密码用 argon2id 哈希存在 `data/stash.db` 的 `admin` 表,会话是 HttpOnly + SameSite=Strict 的 Cookie(7 天); - 密码用 argon2id 哈希存在 `data/stash.db` 的 `admin` 表,会话是 HttpOnly + SameSite=Strict 的 Cookie(7 天);
+9
View File
@@ -147,6 +147,15 @@ DELETE /api/items/:id
## 11. 实施记录 ## 11. 实施记录
### P7(2026-10-30,统一内容模型)
- **模型统一**:分区(section)是容器,分组(group)是任意类型的可选子容器,条目可挂在分区或分组上;`view_mode` 只决定渲染方式;
- **catalog**:所有类型都输出 `groups`(带条目)与 `items`(直属分区条目);
- **渲染**:详情页三种类型都支持分组(多组显示小标题,直属条目进「未分组」);侧栏子菜单、首页卡片预览分组对所有类型生效;
- **后台**:「分区」「侧栏导航」对所有类型可建组;「内容」弹窗的分组选择新增「直属分区」,编辑可换组;
- **修复**:首页卡片配置为「整个分区」时应用类预览为空;catalog 条目查询改为按节点取,避免分组重复/错漏;
- 测试:59 passed。
### P6(2026-10-30) ### P6(2026-10-30)
- **后台新增内容**:`POST /api/items`(`key` + `nodeKey` + 条目字段)、`DELETE /api/items/{key}`;「内容」Tab 用弹窗新增,列表逐条编辑(含换分区/分组)与删除; - **后台新增内容**:`POST /api/items`(`key` + `nodeKey` + 条目字段)、`DELETE /api/items/{key}`;「内容」Tab 用弹窗新增,列表逐条编辑(含换分区/分组)与删除;