人类之所以不同于一般的动物,其重要因素之一是人类的知识能够进行传承和积累。 ——PeiDing
曾经在某个地方见过这样一张图,它描述的是一个人受教育直到PhD的过程中个人涉猎之于人类所有知识的比较。完整的来源见这里The illustrated guide to a Ph.D.。随着自己接触到的知识和领域越来越多,我对这个曾经一笑而过的表达越发印象深刻。人类社会发展至今,无论是科学技术还是哲学思想都太丰富了。我们作为一个渺小的个人,能暂时抛开温饱问题而欣赏这冰山一角,何其幸哉!而这一切的一切,都要归功于我们的先辈,从竹简到造纸术,再到电子计算机,人类的存储方式的进步,大大加快了知识传承和积累的进度。我们可以在当下学习十八世纪初的最小二乘法精妙的思想;也可以从欧几里德的著作中一瞥逻辑学的魅力。
学业需要加上个人兴趣,我也逐渐开始广泛阅读或是经典抑或是前沿的各类知识文献。于是,是时候好好整理一下自己的认知世界了。广负盛名的开源知识管理软件Zotero自然要担负起这个重担!目前接触到最多最方便的文件格式是PDF,主要的知识文献包括书籍和论文。使用Zotero的一个好处除了规范我自己存放管理各类PDF的方式外,还有可以很方便从Zotero导出Bibtex用于Latex引用。我曾经在本科毕设论文的写作中使用过这个功能,很方便,也很符合我的风格特点。
目前一个初步的工具流是Okular→ Zotero → Onedrive。Okular是一个功能很丰富的开源PDF阅读器,提供的Annotation功能很多;Zotero主要功能是管理文献,关键是开源跨平台,且提供很全面的文档,具体可以看zotero.org;Onedrive作为同步云平台,在生态和平台支持方面还是做的不错的,不过巨硬自己实现的WebDAV接口还是有些不清真,好在已有项目在Linux上支持部分Onedrive,且使用起来很方便。这里使用的是@abraunegg的实现。
Zotero内部其实就是塞了一个firefox,配置文件什么都可以参考ff进行设置,类似代理、字体、界面等等。这里我把主题换成了userChrome.css。同步方案的话,Zotero提供很多种,他们官方也免费提供300MB的存储。最终我选择在Zotero服务器上进行data sync
,在Onedrive上进行file sync
,也就是把PDF之类的文件放到OneDrive上,使用ZotFile插件将外部对应的PDF文件路径link到对应的Zotero位置。这样的好处是不用担心存储空间不够,且能够从OneDrive之间访问PDF文档。不过缺点是,同步的操作比较多,涉及到两个应用生态,这也是本篇文章诞生的目的之一,记录一下新增文献的流程。可惜Zotero同步不提供加密服务,这点该向Joplin学习啊!
新增文献条目流程
从OneDrive同步对应的storge目录;
onedrive --synchronize --download-only --single-directory 'ZoteroStorage'
- 获得对应的PDF文件,拖入Zotero,提取PDF元数据,包括作者信息、文章时间等,生成对应的条目;(可能需要手动输入DOI或者ISSN之类的)
- 使用Okular/Zotero,阅读.........标注....学习!(配合Joplin进行笔记总结)
- Annotation全部import进Zotero管理,通过
data sync
同步到Zotero服务器; 更新OneDrive的storage目录;
onedrive --synchronize --local-first --single-directory 'ZoteroStorage'
后记 目前使用的OneDrive客户端实现,还提供webhook、systemd service等功能,可以自动集成同步流,但目前我还不怎么需要做成自动的服务;一方面是仅仅用来同步PDF,频率要求并不高,手动已经可以满足;另一方面作为服务进行管理会增加Arch系统维护的负担。
谁又知道哪天会滚挂呢 ╮(╯▽╰)╭
可能未来使用OneDrive的需求增加了,会进一步考虑完善自动化同步吧。