以之前的信息卡片收纳箱为基础,又进一步打造了文献卡片收纳箱,能够输入doi自动创建文献信息卡片,将文献条目收录到本地知识库。

image-20240811070726229

背景

对于科研人员,日常阅读文献是最频繁的,所以有必要为这类信息建立和优化流程。

过去大家一般使用文献管理软件,例如 zotero,endnote 或者 mendeley。但这些软件相对独立,目前常见的只有 zotero 于 obsidian 联动的教程。但是即便是这种联动,多少还是会造成额外的软件来回切换开销,所以有不少网友呼吁 zotero 干脆与 obsidian 合并算了。

我认为让 zotero 或者 obsidian 的开发者一起合力打造一个东西,不太现实。因为二者的用户群体和应用场景只是部分重合。而且就算合并了,也未必能满足每一个人的需求。所以对于我们个人而言,还是要靠自己的力量来整合。

事实上,得益于 obsidian 极其丰富的插件带来的强大功能,使用 obsidian替代 zotero 九成以上的功能是完全可行的,比如添加完整的文献记录到 obsidian 库中,并通过 dataview 来查询管理。

这里我们打算迈出第一步,简单地展示怎么使用obsidian来收集文献信息卡片。

构思

  1. 几乎所有的科技文献都有 doi,所以 doi 可以作为创建文献卡片的唯一 input。
  2. 根据 doi 可以通过 crossref 提供的接口查询到该文献的完整 meta 信息(例如期刊名,卷,期号,页码,年份之类的),所以可以通过后台脚本查询到这些信息并自动填写文献卡片中的 Front Matter。这样就完成了文献的本地收录。
  3. 文献对应的全文pdf,可以作为附件插入到新建的文献卡片中,obsidian本身就支持直接查看pdf
  4. 可以使用 dataview 来查询文献,比如包含某个标签,属于某个分类的文献有哪些

这里面1,3,4都是obsidian原生支持的,而在第2条中,后台脚本我这边因为能力有限,只会 python,所以就先用 python 代码来实现功能。

实现

首先在 obsidian 库中准备好位置,新建两个目录:

  • 8-References:存放文献数据缓存,阅读笔记,pdf,pdf批注等
  • scripts:存放python代码,编辑和调试代码时可以使用 vscode

然后要新增一些插件:

  • shell commands:方便后台调用 python代码
  • buttons:方便创建功能按钮
  • admonition:用于 button 美化
  • recent files:显示最近打开过的文件,方便切换
  • floating toc:浮动目录,方便长文档编辑和阅读

然后是 python 开发环境:

  • 安装 anaconda或者miniconda
  • 安装 vscode 代码编辑器
  • 命令行窗口中 pip install pyperclip,方便脚本与粘贴板的交互

完成以上准备之后,就进行后台代码的开发测试,这个就不细说了。接着就是创建 button,执行 shell command,调用后台脚本。走通「用户点击按钮实现功能」的全流程。

用法

  1. 从任意来源网站复制 doi,如10.1038/nrc3365
  2. 点击obsidian界面右侧工具栏的 +DOI 按钮
  3. 按快捷键 Ctrl+V 在页面粘贴返回的双链链接,如[[@c5622a]]

注意,如果希望一次性插入多个doi,则可以先把 doi 粘贴到页面中,每个doi独占一行。然后把所有doi整体复制,点击 +DOI 按钮。

效果

add_ref_by_doi

然后在 1-MOC 可以利用 dataview 自定义查询整理文献,例如:

image-20240811080850278

按住Ctrl,把鼠标移动到双链上悬停一会儿,会出现预览小窗口,这个功能非常便捷,避免了来回的窗口切换。如果无法使用该功能,可能是核心插件>页面预览 没有开启。

小结

模板库已备好,另外还有需要用到的 miniconda 和 vscode 安装包,已通过百度网盘分享,下载后解压collector2.zip 即可开箱即用:

链接:https://pan.baidu.com/s/142UXY8_VjcYqMZLyBMZnyw

该部分仅登录用户可见

最后修改:2024 年 08 月 11 日
请大力赞赏以支持本站持续运行!