---
type: pointer
title: 收藏与阅读记录页面需求
summary: 按Figma定义收藏与阅读记录的字段、数量、操作与服务缺口，替换历史视觉基线
updated: 2026-10-08
---

# 收藏与阅读记录

路由：`/discover/starred`。视觉与结构依据：[Figma桌面原稿](https://www.figma.com/design/DfWRfnw965ocH6lmlSYGgs)。旧页面不是视觉验收基线；代码和现有数据库只用于确认可复用合同与运行依赖。

## 用户任务

保存阅读线索、写个人备注、再次找回并导出所选资料。

## 页面数据、功能与持久化

| 区域/操作 | 必需字段 | 数量与范围 | 当前实现及持久化决定 |
|---|---|---|---|
| 头部/筛选 | 收藏数量、q、type、sort | 类型全部/事件/资讯/评论/日报；最近/最早 | 本机最多500条资讯ID；每页20条回读；搜索明确为本页 |
| 收藏行 | id、类型、来源、标题、note、saved_at、original_url | 20条/页，选择复选框 | 不缓存授权正文；现有仅资讯类型，其他类型保留空态 |
| 备注 | 纯文本，最大2000字符 | 每个已收藏ID一条；最多500条 | 本机ripplesight.publication.notes.v1；损坏数据拒绝覆盖，写前确认仍被收藏 |
| 批量工具栏 | 选中数量、导出、取消收藏、清除选择 | 仅当前可读选择 | 一次本机锁写入，单次通知；撤权/失败条目不能导出 |
| 关注事件 | 事件标题、新进展数、最近时间 | 原稿4行；当前缺省 | 需求保留，服务未实现；不等同资讯收藏 |
| Markdown导出 | 标题、来源、原文链接、时间、个人备注 | 所选或本页 | 用户触发客户端文件；不带资讯正文，不声称全库导出 |

## 替换边界

删除旧阅读记录/分类管理作为主界面的组合；旧view=read深链接保持兼容。JSON搬迁工具不作为新界面主入口，旧version1合同不含备注，备注通过Markdown导出。跨设备同步不是本轮默认前置。

## 接口与业务落点

下列为本页业务读取/提交入口。全局会话、头像、站点元信息和共享组件中未在本页触发的导出函数不算新增页面能力。请求类型、响应与错误以生成客户端和后端为准。

| 页面调用 | 方法和路径 | 请求 → 响应合同 | 实现依据 |
|---|---|---|---|
| `getSitePublicationItem` | `GET /api/publication/items/{content_id}/site` | `getSitePublicationItemParams` → `PublicItemDetailView` | [客户端](../../../../frontend/src/api/gongkaifabu.ts) · [后端](../../../../backend/app/api/routers/publication.py) |

数据落点：[publication_records](../reference/13-现有数据库字典.md#publication_records)、[publication_policy_versions](../reference/13-现有数据库字典.md#publication_policy_versions)。这是当前依赖定位，不代表这些表均为重新设计时必须新建；详细字段/键/关系及保留原因见[页面数据库设计](../reference/09-全站页面数据库设计.md)。


## 交互、权限与验收

- 正常、空、加载、错误、无权限分别验收；未知数值显示“—”，没有观测不画虚构曲线，过期数据标明时间。
- 对照 Figma 原稿在 1440px / 390px 验收布局、标题、间距、滚动和键盘焦点。组件检查通过不替代视觉评审。
- 页面读取不启动采集、模型或外发通知；写操作显式触发，失败保留输入，版本冲突先重读。公开读取继续执行逐项许可；个人数据 owner 来自会话。
- 设计中存在而服务没有提供的字段是待接入需求，不因旧页面没有该控件而撤销，也不据此预建通用平台。

跨页约束见[接口设计](../reference/08-全站页面接口设计.md)、[数据库设计](../reference/09-全站页面数据库设计.md)、[非功能](../reference/10-全站非功能需求.md)及[验收](../reference/11-全站验收场景.md)。实施进度只记 BACKLOG。
