这期将分享一个Obsidian插件——ZotFlow
该插件打通了Zotero的文献数据库与Obsidian的知识库,实现元数据同步、笔记双向更新。安装配置简单,支持自定义模板,适合需要高效管理学术文献的Obsidian用户。
下面就来细说这个插件

如何安装

1. Obsidian第三方插件安装

notion image

2. 预发布版(BRAT)

  1. 安装 BRAT
      • Obsidian → Settings → Community plugins
      • Browse 搜索 "BRAT",安装并启用
  1. 添加 ZotFlow Beta
      • 在 Community plugins 中点击 BRAT 旁的 Options
      • 点击 Add Beta plugin
      • 输入仓库地址:duanxianpi/obsidian-zotflow
      • 点击 Add Plugin
  1. 启用 ZotFlow- 回到 Settings → Community plugins,找到 ZotFlow 并开启

配置

1. 首先连接Zotero

前置条件:Zotero 数据同步

ZotFlow 通过 Zotero Web API 获取库数据,因此你的条目必须已经同步到 Zotero 云端:
  1. 打开 Zotero 桌面端 → Edit → Settings → Sync(macOS 上是 Zotero → Preferences → Sync
  1. 登录 Zotero 账号并确认 Data Syncing 已开启
  1. 点击 Sync(绿色环形箭头)并等待完成
notion image
ZotFlow 通过 Zotero Web API 获取库数据,因此你的条目必须已经同步到 Zotero 云端:
当然这里你不用担心免费版存储空间有限制的问题,这个插件对于PDF等附件是可以采用其他云端Web Dev(如坚果云)或者本地Linked files(如OneDrive、iCloud)的方式存储引用,元数据采用云端同步(云数据占用存储空间很少)

创建 API Key

  1. 打开 https://www.zotero.org/settings/keys/new
  1. 给 Key 起一个描述名(如 "ZotFlow")
  1. 在 Personal Library 下,勾选 Allow library access 和 Allow write access(后者是 bidirectional sync 的前提)
  1. 如需编辑 Zotero Item Note,勾选 Allow notes access
  1. 如果你使用 Group Library,按需授权目标 Group
  1. 点击 Save Key 并复制生成的 Key
notion image

2. 连接ZotFLow

点击Verified进行验证
notion image
Sync Mode是同步模式,根据情况选择:
  • Bidirectional — 拉取 + 回写(推荐用于个人主库)
  • Read Only — 仅拉取(适合共享组库、审阅场景)
  • Ignored — 同步时跳过

3. 准备附件存储(可选)

这一步是可选,跳过依然可以使用:
  • 文献搜索;
  • 引用插入;
  • 同步Source Note;
  • 同步标题、作者、摘要、DOI;
  • 同步Zotero 笔记和批注信息。
知识不能打开尚未下载到本地的 PDF和在Obsidian进行PDF批注与zotero双向同步
配置分为两种情况,

情况一:使用元数据+WebDAV 附件:

文献元数据 → Zotero 官方免费同步 PDF 附件 → WebDAV Obsidian → ZotFlow 按需读取
这种情况适合大规模科研文献库的方式,一种比较便宜和稳定的方式是采用坚果云作为云端存储
notion image
我这里以坚果云为例:
上面URL采用和zotero一样的配置,即 https://dav.jianguoyun.com/dav/zotero
notion image
记得要先在zotero同步一次到坚果云,不然坚果云没有zotero本地的附件
然后打开坚果云客户端
notion image
notion image
notion image
notion image
然后把账号密码填写到对应的位置
notion image
需要注意:
Server URL 必须包含 /zotero,直接指向 Zotero 存放附件的那个 zotero 文件夹。这与 Zotero 客户端的填法不同:Zotero 会自动在你填的地址后面补上 zotero/,而 ZotFlow 不会,所以要自己带上。例如:Zotero 里配置的是 https://dav.example.com/dav,这里就填 https://dav.example.com/dav/zotero
其他云端(如infinite)也一样,不懂如何配置截图问AI即可

情况二:元数据+本地链接附件

PDF → D:\ZoteroPapers Zotero → Linked Attachment ZotFlow → Linked Attachment Base Directory
ZotFlow 不复制文件,只读取原来的 PDF。配置位置:
notion image
这种方式完全绕开 Zotero 300 MB 限制,但只适合桌面端;换电脑后必须同步相同的附件文件夹,并正确配置路径。
一般不推荐这个方式,别问我为什么!
等你电脑坏了,要重装系统就知道了!

使用方式

1. 常规操作

notion image
点击侧边栏图标,然后同步按下Sync即可
这里也可以修改笔记的配置
notion image
点击 Pick Zotero Item 选择文献,然后按下 Render 和预览图标进行预览效果
notion image
这里的模板可以个性化配置,这部分可以问AI帮忙配置自定义修改
还可以按住 Ctrl/Command+P通过命令的方式调用其他命令
比如打开文件树、插入文献CSL引用等等....
notion image

2. 文献引用插入

ZotFlow 插入文献引用最简单的方法是在 Obsidian 编辑器中输入 @@,搜索文献并按 Enter。

一、先设置引用格式

进入:
重点配置:
设置
建议
Default Citation Format
按用途选择
Trigger Character
保持 @@
Citation Template
初期保持默认
四种格式的区别:
  • Wikilink:生成 [[文献笔记|作者(年份)]],适合知识库。
  • Pandoc:生成 [@citekey],适合论文写作和 Pandoc 导出。
  • Footnote:生成 Markdown 脚注。
  • Citekey:只生成 @citekey
ZotFlow 会优先使用文献的 citation key;没有 citation key 时,会退回 Zotero item key。

二、输入 @@ 插入引用

在 Markdown 编辑模式中输入:
随后会弹出 Zotero 文献搜索框:
  1. 输入标题、作者或关键词;
  1. 选择目标文献;
  1. Enter
  1. 引用会插入到当前光标位置。
例如选择 Pandoc 格式时:
触发字符可以在:
中修改。

三、从 Zotero Tree View 拖入

打开 ZotFlow 的 Zotero Tree View,将文献条目直接拖到笔记正文中。
注意:
  • 拖动期刊论文、图书等条目:插入引用;
  • 拖动 PDF 或 EPUB 附件:插入附件打开链接,不是文献引用;
  • 拖动批注:插入带页码或批注定位的引用。
拖动时可以临时切换格式:
操作
插入格式
直接拖动
默认格式
Shift + 拖动
Wikilink
Alt + 拖动
Pandoc
Ctrl + 拖动
Footnote
Ctrl + Shift + 拖动
裸 Citekey

四、从 PDF 批注插入引用

在 ZotFlow 阅读器中选中一条批注:
复制“默认格式引用”,然后粘贴进笔记。
则只复制批注原文。也可以右键批注,选择:
  • Copy Default Citation
  • Copy Pandoc Citation
  • Copy Footnote Citation
  • Copy Wikilink Citation
  • Copy Embed
Pandoc 和 Wikilink 模板可以自动带入批注页码。

五、正式论文写作的推荐配置

如果主要在 Obsidian 中积累知识,推荐:
若准备通过 Pandoc 导出 Word、LaTeX 或论文:
若需要直接生成 APA、IEEE、Chicago 等格式,进入:
选择默认 CSL 样式和输出格式。ZotFlow 支持使用 citeproc 渲染正式引文和参考文献表,例如模板中使用:
以及:
如果输入 @@ 没有弹窗,通常检查三项:已经完成 Zotero 库同步、当前处于 Markdown 编辑模式、Trigger Character 仍设置为 @@
又或者是和其他插件起冲突,比如我的Yolo和Latex Suite快捷键起冲突了

同步效果

notion image
notion image
然后我再Obsidian这里对PDF做到批注也会同步到zotero,实现双向同步
这个插件还在不断开发和维护中,相比此前的Zotero Integration插件已经两三年没有更新维护了
总算有人在它的基础上改进并真正实现双向同步了
之前有段时间我也用过,不过但是还比较早,有部分bug,现在稳定多了,基本没出现过问题
可以放心使用

架构设计

ZotFlow 使用主线程 + Web Worker分离的方式来提高响应速度:
  • 主线程— Obsidian API、UI 渲染(复杂视图使用 React,设置使用原生 API)。
  • Web Worker — Zotero API 调用、同步引擎、IndexedDB (Dexie)、模板渲染、PDF 处理。
  • 阅读器 iframe — Zotero 的 PDF/EPUB/HTML 阅读器,通过 penpal 嵌入并沙盒化。

参考文档

项目参考文档: https://zotflow.peterduan.dev/zh/

最后说几句心里话

大半年过去了,我也折腾了不少工具的使用和搭建,科研效率确实提升不少。以前在Zotero和Obsidian之间来回切换很割裂,现在批注、引用、笔记全部打通,写论文时特别顺手。虽然偶尔有些小细节还能优化,但整体稳定性已经足够日常使用了,强烈推荐给同样折腾文献管理的朋友。
我自己也开发了一个工具,也是做zotero和Obsidian双向联动,不过定位不一样,我的工具主要还增加了一个MinerU解析文献作为桥梁,同时介入大模型,我要做的一件事就是让大模型维护我的文献,zotero和Obsidian同时维护,然后需要让大模型解读文献的时候跨文献、跨章节、跨图表进行分析,便于自主链接文献缺口和文献综述,尤其是服务于我这种懒人
感兴趣的话也可以关注一下我的项目:
我也和ZotFlow的作者一样都是学生,空闲之余借助AI进行Vibe Coding而作
致力于为科研工作者、同为AI时代下的科研懒虫们服务
人类之光!开源万岁!
专长 × 杠杆 × 行动:我的一人公司探索之路Obsidian同步到Notion教程
Loading...