本地批注工作区
批注 / 高亮 / 修订 / 笔记全部保存在你的本地:浏览器只是工作缓冲,绑定的 .jsonl 文件(你自己的文件夹)是唯一数据源——服务器不存储任何批注数据。
数据格式(JSONL,每行一条)
{"type":"highlight","book_id":"shang-han-lun","section_n":1,"para":2,"quote":"脉浮","color":"y","created_at":"2026-08-20T00:00:00Z"}
{"type":"annotation","book_id":"shang-han-lun","section_n":1,"para":0,"quote":"太阳之为病","text":"六经总纲,参见 [[s:shang-han-lun:5]]","created_at":"2026-08-20T00:00:00Z"}
{"type":"edit","book_id":"shang-han-lun","section_n":1,"para":0,"quote":"桂枝","replacement":"桂(桂枝)","note":"别名注","created_at":"2026-08-20T00:00:00Z"}
{"type":"note","book_id":"shang-han-lun","title":"太阳病纲要","body":"参见 [[s:shang-han-lun:1]] 与 [[a:批注id]]","created_at":"2026-08-20T00:00:00Z"}
type:highlight(高亮)/ annotation(批注)/ edit(修订)/ note(笔记)section_n:篇目序号;para:篇内段落序号(0 起);quote锚定原文(比字符偏移更稳)- edit 的
replacement留空表示删除;站上原文永不被修改
双向引用([[...]])
[[s:书id:篇号]]→ 站内篇章,如[[s:shang-han-lun:1]][[herb:药名]]→ 中药页;[[a:批注id]]/[[n:笔记标题]]→ 本地批注/笔记(面板内跳转)- 其他任意文本 → 全文搜索页
- 阅读面板「引用」标签自动列出引用当前篇的全部批注与笔记(反向引用)
自动保存 / 自动加载
- 浏览器缓冲:每次操作立即写入浏览器本地存储,刷新不丢
- 文件夹自动同步(Chrome/Edge 等支持 File System Access 的浏览器):
面板点「连接本地文件夹」授权一个目录 一次,此后所有书的批注
自动读写各自的
{书id}.notes.jsonl(修改自动保存、打开自动加载), 面板底部显示连接状态。浏览器安全模型不向网页暴露文件夹的绝对路径, 授权后由浏览器代为读写——这是网盘类产品的通用做法 - 其他浏览器:用「导出 / 导入」手动管理
.jsonl
工作流
- 浏览器工作:阅读页选中文字 → 高亮 / 批注 / 修订;「笔记」标签记录跨书理解
- 文件即数据:JSONL 为纯文本,任何编辑器或程序(含本地 AI 工具)均可直接读写,不经服务器
- 建工作区:
friendlyai notes new shang-han-lun --dir ./notes生成全书 .md + 空批注模板 + 说明