feat: 实现导航页基础功能
- 添加导航条目和分类数据模型 - 实现导航卡片网格展示 - 支持点击卡片打开链接 - 添加主题样式(渐变色、卡片阴影) - 区分系统默认和自定义条目 - 添加分类统计信息"
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# 后端数据结构设计:网站与分组
|
||||
|
||||
> 本文是设计稿,已按此实现。代码在 `backend/`,接口与运行方式见
|
||||
> [backend/README.md](../backend/README.md)。
|
||||
> 本文是设计稿。实现时按「侧栏结构和网站绑定到一个文件、删除时同步清理」调整过,
|
||||
> 现状见 [backend/README.md](../backend/README.md)。
|
||||
|
||||
## 1. 需求与边界
|
||||
|
||||
@@ -158,17 +158,14 @@ pub enum SiteSource {
|
||||
|
||||
```
|
||||
backend/data/
|
||||
├── site.json # 站点名与搜索框提示,只读
|
||||
├── system-categories.json # 内置分组,只读,项目维护者手写
|
||||
├── system-sites.json # 内置网站,只读
|
||||
├── user-categories.json # 提交时创建的分组,可写
|
||||
└── user-sites.json # 提交 / 推送的网站,可写
|
||||
└── nav.json # 站点信息 + 分组结构(含网站),一份文档
|
||||
```
|
||||
|
||||
- 读:启动时全量加载进内存,之后都从内存读,不再碰磁盘。
|
||||
- 写:只写 `user-*.json` 两个文件。**代码里不存在写 `system-*.json` 的路径**,
|
||||
「不可修改」靠结构保证,而不是靠每处调用都记得判断。
|
||||
- 写盘用「先写临时文件再改名」,避免写到一半断电把文件写坏。
|
||||
- 读:启动时加载进内存,之后都从内存读,不再碰磁盘。
|
||||
- 写:整份文档一起写回,但改的只会是 `source != system` 的那部分。
|
||||
- 网站直接挂在分组的 `sites` 里,不再自己记 `categoryId`——
|
||||
归属由位置表达,删掉分组不会留下指向空处的引用。
|
||||
- 删除网站时,如果它所在的用户分组空了,会在**同一次写入**里一起清掉。
|
||||
- JSON 用 2 空格缩进、保留中文原文,方便直接看 diff。
|
||||
|
||||
### 5.1 启动时的自检
|
||||
|
||||
Reference in New Issue
Block a user