Zotero vs Mendeley 源码级拆解:选文献管理工具前必须知道的 3 个关键差异
【免费下载链接】zoteroZotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share your research sources.项目地址: https://gitcode.com/gh_mirrors/zo/zotero
如果你正在纠结 Zotero 和 Mendeley,或者想把整个 Mendeley 文献库迁过来,关键问题不是谁界面更好看,而是现有数据能不能平滑带走、还能不能长期掌控。Zotero 是一款开源的文献管理工具,可收集、整理、注释、引用并共享研究资料,且内置原生的 Mendeley 数据库导入通道。
30 秒速览:谁赢在哪 📦
| 维度 | Zotero | Mendeley |
|---|---|---|
| 数据来源 | 完全本地(SQLite 数据库 + 本地文件),离线可用 | 本地也是 SQLite,但同步与部分功能依赖云服务 |
| 迁移进 Zotero 的通道 | 原生导入:直接读 Mendeley 本地数据库,或经 OAuth 走 Mendeley API | 无针对 Zotero 的原生导出,只能靠 RIS 等中间格式手动搬 |
| PDF 高亮迁移 | 带位置、颜色、批注一起迁;非 PDF 附件降级为笔记 | 随 PDF 文件保留,但跨工具携带靠人工 |
| 开源与扩展 | 全量开源(AGPLv3,见 COPYING),插件系统开放 | 闭源商业软件,扩展依赖官方更新 |
| 免费云存储额度 | 偏小(数百 MB,可用 WebDAV 等方案自行扩展) | 相对更大 |
三条核心差异:
- Zotero 的导入器能直接解密并读取 Mendeley 本地数据库,连高亮标注的位置和颜色都转过来;Mendeley 侧没有对等的原生通道。
- 标注迁移是"结构化转换"(highlight/note/ink 各自对应),不是把一切压成一段文字。
- Zotero 是 AGPLv3 开源,插件生命周期事件全部开放,工作流可无限定制。
整库迁移:Zotero 直接读 Mendeley 的数据库,而不是让你导出 RIS
Mendeley 桌面版把每个账户的文献库存在本地一个 SQLite 文件里,Zotero 的导入向导会自动去 Mendeley 的安装数据目录把这些库找出来。定位逻辑在 chrome/content/zotero/fileInterface.js 的getMendeleyDirectory(第 332 行)和findMendeleyDatabases(第 350 行):
// fileInterface.js 第 360 行起:按文件名识别 Mendeley 数据库 // online.sqlite, counterintuitively, is the default database before you sign in if (entry.name == 'online.sqlite' || entry.name.endsWith('@www.mendeley.com.sqlite')) {找到文件后,chrome/content/zotero/import/mendeley/mendeleyImport.mjs 的Zotero_Import_Mendeley类接手:_isValidDatabase(第 430 行)先校验Documents、DocumentFiles、Folders等 11 张表是否齐全,确认是真库再开始导入;目录结构则由_getFoldersDB(第 455 行)从Folders表读出,转成 Zotero 的 collection 层级。Mendeley 本地库是用 SQLite Encryption Extension 加密的,读不了怎么办?同目录的 chrome/content/zotero/import/mendeley/mendeleyDecrypt.mjs 给出了答案——它按 AES-256-OFB 逐页解密,密钥由 Mendeley 内置常量与数据库文件名里的账户 UUID 异或生成(getLibraryKey,第 70 行)。
所以呢:你不需要在 Mendeley 里逐集合导出,Zotero 能把你本地那个"加密黑盒"整个搬过来;反过来,Mendeley 没有对等的 Zotero 导入,想从 Zotero 换过去只能走 RIS,标签体系、子集合层级、PDF 标注大概率都要手工补。
高亮注释到底迁没迁过去:连颜色和位置都转
很多人担心迁移后 PDF 里的荧光笔和批注会丢。看 chrome/content/zotero/import/mendeley/mendeleyImport.mjs 第 13–23 行的颜色映射表,Mendeley 的标注色被一一翻译成 Zotero 读者里的标准色:
// mendeleyImport.mjs 第 13 行起:Mendeley 高亮色 → Zotero 高亮色 const colorMap = new Map(); colorMap.set('rgb(255, 245, 173)', '#ffd400'); colorMap.set('#fff5ad', '#ffd400'); colorMap.set('rgb(255, 181, 182)', '#ff6666');_saveAnnotations(第 1726 行)负责把每条标注按highlight/note/ink等类型落库,并保留页码与坐标(rects数组);对重复导入做了去重——用mendeleyDB:annotationUUID关联关系查是否已存在(第 1786 行起)。另外 chrome/content/zotero/xpcom/reader.js 里还有个migrateMendeleyColors方法(第 130 行):旧版导入留下的 Mendeley 色值,在 PDF 阅读器里第一次打开时会被自动改写为 Zotero 配色。
所以呢:高亮、批注、颜色是"真迁",不是转成一段纯文本;但有个明确边界——非 PDF 附件(如 EPUB)的标注不迁,代码在第 1746–1750 行直接跳过,只把有文字的批注降级合成一条笔记(第 1820 行起)。
开放 vs 封闭:插件系统决定了你能走多远
Zotero 的插件管理在 chrome/content/zotero/xpcom/plugins.js,Zotero.Plugins(第 27 行)基于 Firefox 的 AddonManager 构建,第 53 行定义的REASONS常量列出了ADDON_ENABLE、ADDON_UPGRADE、MAIN_WINDOW_LOAD等完整生命周期事件——插件能感知应用启动、窗口加载、自身升级,理论上可以深度嵌入任何环节。底层数据层同样开放:chrome/content/zotero/xpcom/db.js 的Zotero.DBConnection(第 34 行)默认使用 SQLite 排他锁模式(第 28 行DB_LOCK_EXCLUSIVE),保证单进程独占读写,大库下批量导入、事务操作都跑在这套接口上。Mendeley 作为闭源商业软件,这类扩展点不对外开放,定制只能等官方发版。
所以呢:如果你需要自定义导入导出格式、批量重命名、与自有服务对接,Zotero 的插件生态是唯一可行解;反之,Mendeley 的"不可定制"意味着你的工作流上限就是官方给出的那个样子。
避坑清单:迁移前最容易踩的 3 个坑 ⚠️
- 选错数据库文件:
online.sqlite反直觉地是"登录前"的默认空库(fileInterface.js 第 360 行注释),多账户用户的库名是xxx@www.mendeley.com.sqlite,挑错文件导进去就是一库空白。 - 数据库结构版本有硬编码:
mendeleyImport.mjs第 111 行把 schema 映射版本写死为const mapVersion = 83,且第 110 行挂着 "TODO: Get appropriate version based on schema version"——Mendeley 大版本升级后本地库结构若变化,导入可能报错或字段缺失,升级前别急着迁。 - 标注迁移有损耗:非 PDF 附件的标注只会变成笔记文字;空高亮(无选中文字)会被直接跳过(第 1777 行)。迁移后建议抽查几个标注密集的 PDF,确认高亮位置没有漂移。
场景化选型:对号入座 🧭
- 如果你要把 Mendeley 整个库(含高亮、文件夹、笔记)搬过来 →选 Zotero,原生导入一条路走完。
- 如果你是开源软件支持者、需要插件定制工作流、长期掌控自己的数据 →选 Zotero。
- 如果你只想要更大免费云存储、极简操作、团队依赖 Elsevier 生态 →选 Mendeley,并接受"以后换工具只能走 RIS"。
- 如果你标注以 PDF 荧光笔为主且从不折腾插件 → 两者皆可,但倾向 Zotero,因为数据主动权在自己手里。
从 Mendeley 迁到 Zotero 只需三步:
- 文件 → 导入,导入向导会自动扫描 Mendeley 数据库(或 OAuth 登录走云端 API);
- 勾选"链接文件",等进度跑完,抽查元数据、附件链接、高亮三件事;
- 若个别附件路径失效,用导入器的 relink 模式重新关联,不用重导全库。
一句话结论:把"数据迁移的完整性"和"长期可扩展性"算进账,Zotero 是迁移场景下的默认答案,Mendeley 赢在免费存储额度和零维护成本。你在迁移中遇到过什么坑?欢迎留言聊聊你的真实体验。
【免费下载链接】zoteroZotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share your research sources.项目地址: https://gitcode.com/gh_mirrors/zo/zotero
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考