从网页选中文本到 flomo:本地草稿工作流与格式边界
作者:Flomo Extension · 发布于 · 更新于
网页摘录最容易产生两个误解:一是“选中文字就会自动上传”,二是“加入草稿会保留原网页的全部格式和来源”。Flomo Extension 1.20.0 的实际行为都不是这样。
当前流程是:用户完成鼠标选择后,扩展显示一个浮动入口;只有再次点击“添加到 flomo extension 草稿”,选区的纯文本才会进入浏览器本地草稿。页面链接、标题、图片和原始样式不会随选区自动保存。
本文依据 Flomo Extension 1.20.0 源码核对,日期为 2026 年 8 月 1 日。示例用于解释当前实现,不代表与所有网页编辑器、代码块或动态页面都已完成兼容性测试。
选中文本后,扩展具体做了什么
普通网页内容脚本运行在 *://*/* 范围,并监听鼠标选择动作。一次完整的加入草稿流程如下:
- 用户在网页中用鼠标选择一段文字;
mouseup触发后,脚本调用window.getSelection();- 对选区结果执行
toString().trim(),得到纯文本; - 在选区上方显示“添加到 flomo extension 草稿”;
- 用户点击浮动入口;
- 文本通过扩展内部消息交给后台;
- 后台把它包在一个 HTML 段落中,并追加到
flomo-draft; - 下次打开扩展弹窗时,编辑器读取这份本地草稿。
只是拖动并选中文字,不会执行第 6、7 步。用户可以点关闭图标,也可以取消选区;没有点击“添加到草稿”就不会由这条路径写入本地草稿。
多次摘录怎样排列
如果本地已经有草稿,新摘录会追加在末尾,每次选区使用一个段落容器:
<p>第一次选择的文字</p>
<p>第二次选择的文字</p>
因此,多次点击的先后顺序会成为草稿顺序。扩展不会按网页位置重新排序,也不会自动合并相邻摘录。
更实用的工作方式是先写一个主题,再按阅读顺序加入少量片段。例如:
#阅读/产品
问题:这篇文章怎样解释新用户流失?
[摘录一]
用户第一次完成任务前需要经过三个配置步骤。
[我的判断]
真正应验证的不是步骤总数,而是每一步是否有即时反馈。
来源:https://example.com/article
当前版本不会自动加上方括号标题和来源链接;这些内容需要用户自己补充。
草稿保存在哪里,什么时候会被清空
草稿键名为 flomo-draft,写入浏览器扩展的本地存储区域。以下动作会更新它:
- 点击网页选区旁的“添加到草稿”;
- 在扩展编辑器中输入、删除或调整内容;
- 扩展弹窗卸载前执行草稿保存。
源码没有为草稿设置固定失效时间。退出 Flomo Extension 账户时,当前退出逻辑只删除账户摘要,没有同时清空草稿。
收到 flomo 页面内容脚本返回的正向保存结果后,弹窗会把本地草稿设为空。重要内容应先复制一份,并在 flomo 页面核对结果;清空时机与结果确认方式见《Flomo Extension 保存流程与故障排查》。
哪些内容会保留,哪些不会
| 原网页内容 | 加入草稿后的结果 | 原因 |
|---|---|---|
| 普通文字 | 保留选区的文字内容 | 使用选区的纯文本结果 |
| 粗体、颜色、字号 | 不保留原样式 | 没有复制选区 HTML |
| 超链接 | 通常只留下可见文字 | 页面 URL 和链接地址没有被一起读取 |
| 图片、视频、附件 | 不加入草稿 | 当前消息只传递字符串 |
| 页面标题与网址 | 不自动加入 | 当前选区流程没有读取这些字段 |
| 多个网页片段 | 按点击顺序追加 | 后台把每次选择追加为新段落 |
| 原网页复杂换行 | 不保证原结构 | 整个选区字符串被放进单个段落容器 |
这意味着该功能更适合“摘取一小段文字,再补充自己的判断”,不适合保存完整网页快照。
代码、尖括号和特殊字符需要检查
当前后台把选区字符串直接插入 <p>...</p>,源码中没有在这一步显式执行 HTML 特殊字符转义。草稿之后又作为 HTML 交给编辑器。
因此,摘录以下内容后应特别检查编辑器结果:
- 包含
<div>、</script>等尖括号的代码; - 含有
&、<、>的表达式; - 依赖空格、制表符或换行的配置片段;
- 从在线 IDE、终端或富文本编辑器选取的内容。
不要假设代码会按原样显示。保存前在扩展编辑器中逐字符检查;需要保留格式时,更稳妥的做法是先转成普通说明文字,或在尖括号外增加解释,而不是把扩展当作代码剪贴板。
弹窗编辑器当前支持哪些格式
1.20.0 的工具栏配置包含:
- 粗体;
- 下划线;
- 无序列表;
- 有序列表;
- 黄色背景标记;
- 从 flomo 页面读取的标签;
- 表情。
编辑器还显示当前文字长度,并尝试保留默认的 #flomo-extension 标签。保存前,黄色背景使用特定的 RGB 样式;发送时,当前代码会把匹配到的样式转换成 <mark> 标签。
这里有三个格式边界:
- 只有恰好匹配当前黄色背景样式的内容会执行这次转换;
- 标签列表来自已打开的 flomo 页面,页面未连接或结构变化时可能为空;
- 源码没有在弹窗配置中设置明确的最大字数,但 flomo 网页仍可能有自己的输入限制,不能据此理解为“无限长度”。
标签列表不可用时,可以直接输入 #标签。如果需要层级标签,先用一条测试笔记确认 flomo 当前网页如何解析。
一个更可靠的摘录模板
只保存原文会让未来的自己难以判断“为什么要留”。可以在扩展草稿中固定加入四项:
#阅读/主题
摘录:
(从网页加入的一小段原文)
我的理解:
(用自己的话说明它为什么重要)
下一步:
(要验证、查找或执行的一件事)
来源:
(手动粘贴页面 URL;必要时写作者和日期)
这个模板同时弥补当前选区功能不自动保留来源的限制。引用他人内容时,应控制摘录长度、注明来源并遵守原网站的版权和使用规则。
隐私边界:读取选区与加入草稿不是同一步
内容脚本因为匹配所有普通网页,可以在页面内响应鼠标选择,并取得当时的选区文本。当前代码只有在用户点击浮动入口后,才把该文本发给扩展后台并写入本地草稿。
本次检查到的选区路径没有调用 Chrome 扩展自身的 Flomo Extension 账户 API。不过,这个结论只描述被核验版本的源码路径,不是对商店安装包、第三方依赖或未来版本的独立保证。不要在密码管理器、支付页面、客户后台等敏感环境中使用选区摘录;不需要该能力时,可以通过 Chrome 的网站访问设置限制扩展运行范围。
完整的权限、Google 登录和账户数据说明见《Flomo Extension 权限与数据流》。
当前没有自动完成的事情
在本次核验范围内,选区工作流没有实现以下能力:
- 自动保存整篇网页;
- 自动附带页面标题、URL、作者或发布日期;
- 保留链接、图片和原网页 CSS;
- 判断摘录是否重复;
- 验证用户是否有权转载选中的内容;
- 为保存到 flomo 的结果生成服务端笔记 ID。
这些不是隐藏功能,而是当前实现的明确边界。了解边界后,可以把扩展用于短摘录和个人思考,而把网页归档、代码片段保存与版权管理交给更合适的工具。
核验范围与版本
本文由 Flomo Extension 项目于 2026 年 8 月 1 日依据版本 1.20.0 源码整理。检查范围包括全网页选区监听、扩展内部消息、后台草稿追加、本地存储、弹窗富文本工具栏和发送前 HTML 转换。未对所有网站进行兼容性测试,也未验证浏览器商店构建包与源码树逐字节一致。