LaunchBar 与 Zotero 联动,补齐文献搜索短板
Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
缘起
LaunchBar 是 macOS 平台上最为常用的效果工具之一,在我个人,其作为启动工具,可能是我日常使用最多的软件,使用频率如下图(这是笔者的 iMac 上使用 LaunchBar 频率,另外还使用一台 Macbook Pro,所以可能实际还会更频繁)。
同时作为一名教学和科研民工,日常需要较为频繁地搜集、阅读、整理文献,于是不得不和文献管理软件较劲。近年尝试过的文献管理软件包括但不限于 Endnote、Mendeley、Bookends、Bibdesk、Papers3、SnowyOwl、Zotero。这些文献管理软件各有优缺点,如 Endnote 导入方便,文献管理较简单,同时也得到许多其它软件支持,甚至是苹果三件套中 Pages 唯一原生支持的文献管理软件(SnowyOwl 可以通过插件模拟实现 Endnote),但是缺点是价格不斐,难以承受。Bookends 是 macOS 平台原生,支持自动化,但是使用逻辑比较怪,收集文献不方便。所以目前还是选择了 Zotero。Zotero 的优点在于其有各浏览器插件,收集题录信息方便(尤其是对中文,其包括了知网、豆瓣等);自身具有网络同步功能,如果只同步题录信息,自带的同步完全够用,且同步较快;其缺点在 Zotero 是跨平台应用,不用 macOS 原生,因此不能使用 Applescript(包括 Javascript for Automatation,JXA)对其进行自动化处理。同时由于不是原生应用,界面上 “果味” 不够(如下图),使用时总感觉出戏。尤为不适应的是其搜索,默认的是在选中 Collection 里搜索,如果全局去搜,需要点击最上方的根 Collection(即 My Library,当然也可能是我使用方法不对)。
由此想起日常使用 LaunchBar 有较为方便的 Action 制作功能,且其制作的 Action 可以实时返回数据,并对数据进行筛选,如果能将 Zotero 与 LaunchBar 结合,则日常搬砖时岂不心情更好?于是,先搜索了一番,看看有没有别人已经造好的轮子以供驱使。果然通过某不知名的 Google 搜索到了一个名为 Zotero-Actions 的 Action, 但是使用下来有些失望,因为其只能搜索附件,只能打开附件,无法快速在 Zotero 中定位文献本身,以及文献所包含的笔记、链接等(类如 Zotero 有插件叫 Notero,可以将 Zotero 文献信息同步至 Notion,然后在 Zotero 文献下生成一个 Notion 的笔记链接,通过点击这个链接就可以直接调用 Notion 打开对应页面)。虽然想不通,全球使用 Zotero 的人不算少,使用 LaunchBar 的人应该也不算少,为什么没有人开发使用 LaunchBar 搜索 Zotero 的 Action 呢?
成品自取
没有枪、没有炮,那就只能自己造。因为本人职业是医学,编程只是偶尔自学,以下列举,方家可能觉得不过尔尔,还望轻哂。可以从这个链接去下载 成品。
炮制过程介绍
以下简要介绍制作思路。
制件供分析的数据库 JSON 文件
因为 Zotero 不支持 Applescript(JXA)直接搜索控制,只能另寻他路。通过分析 Zotero 的结构发现其每个文献、文献下的笔记、链接、附件都有一个独特的编码,只要能找到并获得这个编码,就可以通过 URL scheme 打开 Zotero 并定位到相应条目。问题是获得这个编码?可以通过 Zotero 自带的导出功能获得,Zotero 自带的导出功能中有一项导出为 CLS JSON 格式,其导出的 JSON 文件中自带 title、url 等属性,已经可以直接通过 LaunchBar 读取处理了。但到这一步离最终要求还差得远,因为 Zotero 收集的文献在不断更新,如果需要搜索导出数据库操作以后的收集的文献就无能为力了。最好是用于 LaunchBar 搜索的源 JSON 文件与 Zotero 保持实时更新。如何做到 Zotero 一更新,就自动导出数据库?就需要用到另一个插件 Better BibTeX,安装好 Better BibTeX 后并重启 Zotero 就可以在 File->Export Library... 所弹出的界面中选择 BetterBibTex JSON,并将 Keep updated 的勾打上,如此 Zotero 一更新,就会自动更新 JSON 文件。
提取数据库 JSON 文件的信息供 LaunchBar 检索
上一步导出的数据库 JSON 中有许多信息是 LaunchBar 用不上的,同时数据库 JSON 文件也不符合 LaunchBar 需要,要对其进行修改。将前面所列的成品文件安装后将有两个 Action ,其中一个 Action 名为 Zotero Refresh,另一个 Action 名为 Zotero Search,前者负责提取数据库 JSON 文件,制作出一个供 LaunchBar 调用的检索用 JSON(以下称检索 JSON)文件。运行前请将两个 Action 中的 path 更改为自己导出的数据库 JSON 和拟生成的检索 JSON 的路径。需要注意的是,供 LaunchBar 检索的 JSON 文件不能自动更新,在 Zotero 生成新的 JSON 文件有更新后需要运行一遍 Zotero Refresh,笔者是通过 Hazel 检测到文件有更新就自动动行 Zotero Refresh。
运行 Zotero Search 以检索信息
完成以上工作后,就可以在 LaunchBar 中搜索 Zotero Search ,找到相对 Action 运行,通过 输入文字,就会实时列出所有符合的 Zotero 中的文献。列出的文献中图标为 “📘” 的表示所属文献是书籍,图标为 “🎓” 的表示是学位论文,其他的为“📄”。在 LaunchBar 中定位到自己需要的文献后回车会调出新的与所选文献有关的子页面,如其所选文献只有题录信息则只有一条,再回车就是打开 Zotero 然后定位到相应文献;
如文献下有链接、附件、笔记,则选择不同项目会有不同结果,LaunchBar 会根据其不同属性采取不同动作,如系笔记,会在 Zotero 中定位到相应笔记,如系附件,可以直接打开,亦可以按 Tab 键后选择相应打开方式,如系链接,会调用链接相关的软件打开。
> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰
> 实用、好用的 正版软件,少数派为你呈现 🚀
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。