Appearance
OPML 导入导出
OPML 用于在订阅应用之间迁移 Feed 列表。Readori 读取 outline 的 text/title/xmlUrl/htmlUrl 并尽量保留分组层级。
导入
按 URL(sourceUrl = xmlUrl)判断是否已存在:不存在则新增并写入分组;已存在的不会 覆盖任何字段——注意这里“已存在”会被计入返回结果的 updated 计数,但实际语义是 “跳过、原样保留本地版本”,不是真的更新了内容,读取导入结果提示时不要把 updated 理解成“字段被刷新了”。
xmlUrl 属性(大小写不敏感,兼容 xmlUrl/xmlurl)缺失的 outline 会被直接跳过,不会 被当作 Feed 导入——这类 outline 通常是纯网页收藏夹条目(只有 htmlUrl,没有真正的 Feed 地址),当前解析器不会做“探测这个网页有没有 Feed”这类额外尝试,跳过就是跳过,不会出现 交互式确认弹窗。
导出
导出只包含订阅结构和公开 URL,不包含登录 Cookie、headers、token、文章缓存和阅读历史。 分组通过嵌套 <outline text="分组名" title="分组名"> 容器实现,每个 Feed 是容器内的一条 <outline type="rss" text=".." title=".." xmlUrl=".." htmlUrl=".."/>(htmlUrl 目前和 xmlUrl 写的是同一个地址,不单独维护站点首页链接)。
