Appearance
文章阅读与缓存
文章支持原生正文和 WebView 两种模式(对应 RSSSource.articleStyle:0=原生列表解析, 1=WebView)。原生模式使用规则抽取、清洗和图片;WebView 模式保留网页交互,但资源和 隐私边界由目标网站决定。
文章标识与状态
RSSArticle 没有独立的服务端文章 ID,本地标识是 link.isEmpty ? title+sourceUrl : link+sourceUrl 拼出来的——也就是说同一来源下,只要 link 相同就认为是同一篇文章,刷新 不会重复出现;link 缺失时退化成按标题去重,同名不同链接的文章在这种情况下会被误判成 同一篇,属于已知的边界情况。
isRead/isStarred:已读 / 收藏(星标);contentCached/cachedContent:列表+正文型来源的详情页正文是否已经抓取并缓存过, 避免重复打开同一篇文章时重复发请求;- 列表页会按正文/摘要字数估算阅读时长(约 200 词/分钟,封顶显示 99 分钟),不需要真的 请求一次详情页才能显示预估时长。
状态
- 打开文章后标为已读;
- 可收藏/取消收藏;
- 可按来源、未读、收藏和时间排序;
- 列表与卡片布局共享同一文章状态;
- 缓存按 source URL 隔离。
失败处理
网络失败保留已有缓存。解析为空时显示来源和诊断入口,不用空内容覆盖上次成功正文。
