以之前的信息卡片收纳箱为基础,又进一步打造了文献卡片收纳箱,能够输入doi自动创建文献信息卡片,将文献条目收录到本地知识库。
背景
对于科研人员,日常阅读文献是最频繁的,所以有必要为这类信息建立和优化流程。
过去大家一般使用文献管理软件,例如 zotero,endnote 或者 mendeley。但这些软件相对独立,目前常见的只有 zotero 于 obsidian 联动的教程。但是即便是这种联动,多少还是会造成额外的软件来回切换开销,所以有不少网友呼吁 zotero 干脆与 obsidian 合并算了。
我认为让 zotero 或者 obsidian 的开发者一起合力打造一个东西,不太现实。因为二者的用户群体和应用场景只是部分重合。而且就算合并了,也未必能满足每一个人的需求。所以对于我们个人而言,还是要靠自己的力量来整合。
事实上,得益于 obsidian 极其丰富的插件带来的强大功能,使用 obsidian替代 zotero 九成以上的功能是完全可行的,比如添加完整的文献记录到 obsidian 库中,并通过 dataview 来查询管理。
这里我们打算迈出第一步,简单地展示怎么使用obsidian来收集文献信息卡片。
构思
- 几乎所有的科技文献都有 doi,所以 doi 可以作为创建文献卡片的唯一 input。
- 根据 doi 可以通过 crossref 提供的接口查询到该文献的完整 meta 信息(例如期刊名,卷,期号,页码,年份之类的),所以可以通过
后台脚本
查询到这些信息并自动填写文献卡片中的 Front Matter。这样就完成了文献的本地收录。 - 文献对应的全文pdf,可以作为附件插入到新建的文献卡片中,obsidian本身就支持直接查看pdf
- 可以使用 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,调用后台脚本。走通「用户点击按钮实现功能」的全流程。
用法
- 从任意来源网站复制 doi,如
10.1038/nrc3365
- 点击obsidian界面右侧工具栏的
+DOI
按钮 - 按快捷键
Ctrl+V
在页面粘贴返回的双链链接,如[[@c5622a]]
注意,如果希望一次性插入多个doi,则可以先把 doi 粘贴到页面中,每个doi独占一行。然后把所有doi整体复制,点击 +DOI
按钮。
效果
然后在 1-MOC
可以利用 dataview 自定义查询整理文献,例如:
按住Ctrl,把鼠标移动到双链上悬停一会儿,会出现预览小窗口,这个功能非常便捷,避免了来回的窗口切换。如果无法使用该功能,可能是核心插件>页面预览
没有开启。
小结
模板库已备好,另外还有需要用到的 miniconda 和 vscode 安装包,已通过百度网盘分享,下载后解压collector2.zip
即可开箱即用:
链接:https://pan.baidu.com/s/142UXY8_VjcYqMZLyBMZnyw
此处评论已关闭