Fluxio 是一个信息流聚合工具:横向切换多个信息源(新闻、博客、社区),一键收藏到 Obsidian。这篇文章是它的架构决策记录——尤其是三个核心取舍。
一、需求与定位#
二、架构总览#
三、核心决策 1:WebView 还是快照#
场景:信息流里点开一篇文章 → 详情页。
决策:默认快照,WebView 兜底:
为什么收藏必须存全文:链接会失效、内容会被改、离线要能读——收藏的语义是"保存这一刻的内容",不是"记住一个地址"。
四、核心决策 2:本地优先#
实现:SQLite 本地库 + Obsidian 目录同步(Markdown 文件)。
五、核心决策 3:收藏进 Obsidian 的格式#
Obsidian 收藏的必须是"内容详情",不是链接:
1
2
3
4
5
6
7
8
9
10
11
12
|
---
title: "AI 面试产品的幻觉治理"
source: "https://xxx.com/article/123"
collected: "2026-03-03 10:00"
tags: [AI, 面试]
---
# AI 面试产品的幻觉治理
(正文全文,图片本地化)
> 来源:[原文链接](https://xxx.com/article/123)
|
关键点:
六、收件箱:任何 App 都能"分享进来"#
浏览器扩展(MV3):
移动端分享(规划):系统分享菜单 → 调本地服务。
本地 API 的安全:绑定 127.0.0.1,token 校验,防局域网滥用。
七、技术栈与取舍#
| 层 |
选择 |
原因 |
| 客户端 |
Flutter(Windows 先,移动后) |
一套代码多端 |
| 本地服务 |
Dart(同语言) |
减少栈 |
| 存储 |
SQLite + 文件 |
本地优先标配 |
| 抓取 |
无头浏览器 / HTTP 解析 |
按站点适配 |
| 同步 |
Markdown 文件 |
Obsidian 原生格式 |
八、踩坑记录#
- 快照样式丢失:抓的 HTML 缺 CSS → 渲染"裸奔" → 内联关键样式 + 阅读模式兜底
- 图片外链失效:快照只存了正文没存图 → 图片本地化(下载到本地目录)
- 收件箱 API 与浏览器安全:网页 JS 不能直接调本地 API → 用扩展(有权限)+ CORS 限制
- Obsidian 同步冲突:双端同时写同一文件 → 文件按时间戳命名 + 冲突保留
九、路线图#
Fluxio 的核心认知:
- 收藏存全文不存链接:内容会失效,快照才是"收藏"
- 本地优先:数据在自己手里,同步是增值不是依赖
- 收件箱模式:任何 App 分享进来 = 统一入口
- Obsidian 同步用 Markdown:原生格式,双向不折腾
信息流工具的本质:把"信息经过"变成"信息资产"。快照 + 本地 + 可同步,让每次阅读都有沉淀。
微信公众号「福清而不淡」
后端架构 · AI 工程 · 云原生的一线实践,扫码关注,不错过更新。
本文已同步发布到公众号,欢迎留言交流。