中文说明 | English
Obsidian 桌面 RSS 阅读器:在右侧栏管理普通 RSS、Atom 和微信公众号,在原生弹窗中阅读、切换、收藏与归档。界面直接使用 Obsidian 主题变量,自动跟随深色、浅色主题。
普通 RSS/Atom 安装即用,不需要公众号引擎。公众号引擎由用户主动选择安装,插件启动或普通刷新不会自动下载。
1.1.0 新增插件内安装入口。旧版 1.0.0 没有此按钮,请先更新插件,或使用完整 ZIP 手动安装。
| 安装方式 | 普通 RSS/Atom | 微信公众号 |
|---|---|---|
| 社区插件页面安装,或只安装三个标准插件文件 | 可直接使用 | 1.1.0 可在设置中点击“安装公众号引擎”,确认后下载 |
| 下载完整 ZIP,按完整目录安装 | 可使用 | 已包含引擎,无需另行下载 |
引擎安装入口在“设置 → RSS 阅读 → 公众号引擎(可选)”和侧栏更多菜单。确认前展示 GitHub 来源、固定版本、约 45.5 MiB 下载量及安装位置;确认后校验 SHA-256、解压并验证随包 Node。支持取消、失败重试和重新安装修复。安装不自动开启公众号功能,完成后需开启并扫码登录。当前仅支持 macOS Apple Silicon(M 系列芯片),无需另装 Node/Python。
安装包固定为已发布的 1.0.0 完整包,仅提取引擎和许可,不覆盖用户设置、缓存或标准插件。安装使用本库插件目录下的 wechat-engine-<随机标识>/,wechat-engine.json 记录当前选择;兼容原有 engine/ 手动安装。成功切换后,正在运行的共享采集实例继续原任务,下次新启动使用新安装。旧版本目录保留,以保护可能仍运行的进程;重新安装会额外占用约 150 MiB,请避免反复安装。
用户主动下载可执行依赖是否符合社区目录政策,尚未获得官方确认;本实现不代表已经通过审核。
main.js、manifest.json、styles.css 放入笔记库配置目录的 plugins/wechat-reader/。普通 RSS/Atom 可直接使用;公众号用户在设置中点击“安装公众号引擎”并确认下载,安装后启用公众号并扫码。也可从 1.2.0 发布页 下载 wechat-reader-1.2.0-macos-arm64.zip,解压后复制完整 wechat-reader/(含 engine/)到插件目录;不要下载 Source code 源码包。覆盖安装时保留 data.json 和 cache/。默认配置目录为 .obsidian,自定义配置目录请使用实际路径。+ 添加 RSS/Atom XML 地址。菜单支持 OPML 导入预览和导出;重复 URL 保留原源,同名源可分别放在不同分组。右键源可以修改名称、分组、刷新周期或停止自动刷新;历史缓存和阅读状态保留。← / → 切换前后文章,↑ / ↓ 滚动正文,Esc 关闭;输入框、输入法和其他弹窗不受影响。打开时冻结当前已展示的文章队列,标记已读后不会跳篇,首尾不循环。Obsidian 标准更新只下载 main.js、manifest.json 和可选的 styles.css,不会解压完整包中的引擎。参见 官方发布说明。
engine/ 前应关闭所有相关笔记库,等待采集结束和程序退出。保留 data.json、cache/ 和归档文件。同机多个库使用公众号时,应统一更新,避免运行不兼容版本。独立采集程序提供固定 Node、共享 SQLite 与队列,使普通 RSS 无需依赖公众号运行环境。用户点击安装的目的是减少跳转 GitHub 和手动解压的步骤;离线或下载失败时仍可手动安装完整包。
阅读器“订阅源”标题旁和插件设置中的“管理订阅”打开同一个管理窗口。支持按名称、分组、链接搜索,以及“全部 / 订阅中 / 已暂停”筛选。点击来源名称展开完整只读链接和刷新间隔;公众号链接明确标为“恢复用原文链接”。每行“设置”可修改名称、分组与刷新配置,“更多”支持暂停/恢复自动更新、立即刷新、移除订阅。窗口顶部提供添加订阅,以及 JSON、OPML 导入和 JSON 导出。
“暂停自动更新”保留来源入口;“移除订阅”确认后从当前库列表隐藏,历史文章、已读收藏、归档笔记与缓存保留,重新添加相同来源可恢复入口。移除公众号同时停止本机共享采集,其他库也会停止自动更新;本库移除标记不会被共享快照覆盖。清理下载内容仍由独立的缓存管理执行。
普通 RSS 无需开启公众号功能、登录微信或运行采集程序。在侧栏菜单扫码登录微信读书,添加公众号时粘贴文章链接,解析真实身份并确认显示名称。
.obsidian/plugins/wechat-reader/cache/,按源分片,图片按文章隔离;条件请求、失败退避和增量合并保留历史。runtime/schedule.json 快照恢复,浏览过的正文和图片缓存在当前库 cache/,缓存完整时不启动服务。首次补读或内容更新时短暂连接;服务故障时可继续读取已有正文。data.json 保存订阅配置、阅读状态和笔记关联,不保存公众号凭据或管理密钥。私有 RSS 地址可能含订阅者自己的查询令牌,请自行决定是否同步配置。~/Library/Application Support/Obsidian WeChat Reader/:SQLite、版本化正文图片、私有 data/credentials/、运行发现文件。data.json 的 wechatFeeds[].wechat:稳定身份、公开原文链接、显示名称、暂停/订阅状态和刷新间隔。新电脑同步插件配置后,重新扫码即可自动恢复信息完整的订阅,无需复制登录凭据。后台仅重建缺失账户,不覆盖本机其他库已有账户的设置。~/Library/Application Support/Obsidian WeChat Reader/ 目录。微信登录凭据始终留在本机私有目录,不写入订阅配置。companion/ 保留一期历史实现和 MIT 上游来源,当前构建、运行、安装包不调用 Python;离线签名对照样例有固定测试覆盖。本插件采用 MIT License。旧版采集实现参考并保留 wechat-mp-tools 的 MIT 许可;第三方运行依赖的许可随完整包附带。
普通 RSS/Atom 会联网访问用户填写的源和文章图片地址。公众号功能需要微信读书账号,会访问微信/微信读书服务以扫码、查询公众号和下载正文,必要时使用本机 Chrome 或 Edge。插件会读写笔记库之外的本机共享目录,保存凭据、文章与采集进度,位置详见下文。不包含遥测、广告或付费功能。仅用户明确点击确认后从 GitHub 下载公众号引擎,不在启动时自动安装,也不自动更新自身或依赖。
完整包目前仅适用于 macOS Apple Silicon。仅安装标准 main.js、manifest.json、styles.css 时可使用普通 RSS/Atom;公众号功能可在 1.1.0 的设置中主动安装引擎,也可手动复制完整包中的 engine/;没有引擎时会提示安装,只有确认下载后才访问 GitHub。
开发需要 Node 26+(使用原生 node:sqlite);安装用户无需额外安装运行时。
npm ci
npm test
npm run test:companion
npm run build
npm run package:companion
npm run test:package
WECHAT_READER_TEST_VAULT="/你的测试笔记库路径" npm run deploy:test
test:companion 使用临时目录和网络夹具,不读取真实授权。test:legacy 仅供一期历史回归,需要单独 Python 虚拟环境。当前包针对 macOS Apple Silicon;移动端、本机之外的 RSS 服务、LaunchAgent、完整历史回补不在本次范围。当前版本号为 1.2.0,内核通过 engineVersion: ts-1 与旧实例区分,并要求 power-save、portable-subscriptions、bounded-history 和 cache-cleanup 能力;1.2.0 的公众号功能可通过设置安装固定 1.0.0 引擎,或手动安装 1.2.0 完整包中的 engine/。
安装和回归结果见 VALIDATION.md。私有发现文件、二维码、Cookie、Token 不得复制到日志、报告或 Git。
公众号正文保存在本地,图片在阅读时直接从微信 HTTPS 图片 CDN 加载,不再批量保存到共享存储。主动归档时才下载为笔记库附件。旧图片清理工具默认仅预览,操作前需停止采集程序。详见 方案说明。