搭建zotero到obsidian的工作流

简介: 所谓“工欲善其事,必先利其器”(差生文具多),想要针对一个领域研究出成果,首先需要建立其对于这个领域完善的知识体系,即形成属于自己的知识库。现在有非常多的笔记软件,例如Notion、语雀、Obsidian等等,对于建立知识库非常有帮助,下面我就来谈谈我个人探索出来的一套从zotero管理文献,到阅读文献做笔记再到obsidian中形成阅读笔记的丝滑工作流。

Why zotero?

zotero是一个文献管理软件,据我了解,其前身其实只是一款浏览器插件,用于提供文献元数据的管理,直到后来被开源社区开发成一款跨平台的桌面级软件,并且有非常好的开源社区以及大量的插件。

文献管理软件当然也不止这一款,至于为什么选择zotero,原因其实非常简单,就是因为它是开源软件,我本人是如果功能足够用,一定会优先考虑开源软件的。开源软件一般拥有庞大的专业用户,他们拥有过硬的技术和开源精神,形成的社区非常喜人。

zotero的基础操作我就不多说了,其实使用起来也比较简单,我主要利用它来分类整理文献,同时搭配Zotero Connector浏览器插件,在google scholar中浏览文献的时候直接一键收录并且提取元数据。

这里推荐两个比较好用的插件,也是我觉得必装的,后续的配置会默认已经安装了这两个插件,插件的配置可以参考网络然后根据自己的需要进行。

  • Better BibTex 6.7.19 ——主要用来帮助zotero更好的管理bibliographic数据
  • ztofile 5.1.1 —— 更好的管理附件文件,例如格式化命名、移动附件等等
  • 另外我的Zotero版本是6.0.11

同时还可以配置Zotero利用云盘进行备份/多设备同步等等,例如我就将我的整个附件目录以及Zotero数据库放在了icloud中。

Why obsidian?

说实话,obsidian算是后起之秀了,在知识库软件百花齐放的今天,这个界面不那么友好的软件似乎没有什么竞争力,但对于专业人士来说,恰恰相反。obsidian它所有的特性完美的符合了我的需求。

  • 文档以markdown格式编写,同时提供扩展语法
  • 数据存储在本地,且直接以.md格式存储,让人放心
  • 提供双向链接、关系图谱等功能
  • 拥有非常庞大的插件支持(例如Vim相关的插件以及等下我们会用到的插件)

构建文献阅读整理工作流

在我们阅读文献的时候,特别是精读的时候,我觉得比较好的一个流程是:

  1. 一遍阅读一遍标注一边写评论,这样可以有助于理解文章,同时理清文章的脉络
  2. 利用不同的颜色区分标注的不同内容
  3. 阅读完成后整理阅读笔记,形成知识存储在知识库中,方便以后翻阅,因为通常需要阅读大量的文献,很容易不记得一些文件的细节

下面我就按照上面的流程来介绍我探索出来的一个工作流

文献标注

我会用不同的颜色来表示标注内容的不同意思,通常的习惯是

  • 橘色表示文章的主要思想
  • 黄色表示研究的细节部分或者系统实现的细节
  • 红色表示还需要继续探究的部分或者感兴趣的参考文献

通过不同颜色的区分不仅有助于我们梳理文章内容,同时也方便接下来导入Obsidian的配置。

导入Obsidian,形成笔记

说了这么多,终于到了重点部分,看起来毫不相关的两个软件,是如何联系起来的呢,这就不得不提到Obsidian的一个插件——zotero-integration

其实在发现这款插件之前,我是根据 Zotero -> zotfile -> mdnotes -> obsidian -> dataview Workflow这篇帖子在实现我的workflow的,但是后来由于zotero的更新,导致zotero的插件mdnote失效了,所以换成了更稳定的Obsidian端实现

安装好zotero-integration后,可以首先通过这个视频熟悉它的使用

现在我们知道了zotero-integration可以通过编写模板实现格式化导入文献笔记

那么我自己的模板文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
---
title: {{title}}
date: {{importDate | format("YYYY-MM-DD HH:mm:ss")}}
categories:
tags:{% for tag in tags %}
- {{tag.tag}}{% endfor %}
---

### Matedata
#zotero

##### Item Type::
[[{{itemType}}]]

##### Authors::
{{authors}}

{%if date %}##### Year::
[[{{date | format("YYYY")}}]]-{{date | format("MM")}}{% endif %}

{%if conferenceName %}##### Conference Name
[[{{conferenceName}}]]{% else %}{% if publicationTitle %}##### Publication Title
[[{{publicationTitle}}]]{% endif %}{% endif %}

{%if DOI %}##### DOI::
[{{DOI}}](https://doi.org/{{DOI}}){% endif %}

{%if pdfLink %}##### PDF Attachment::
{{pdfLink}}{% endif %}

##### Zotero Link
- [Local]({{select}})
- [Cloud]({{uri}})

# {{title}}({%if date %}{{date | format("YYYY")}}{% endif %})
>[DOI] [{{DOI}}](https://doi.org/{{DOI}})

## Abstract
{{abstractNote}}

## 摘要

## 正文
{% for annotation in annotations %}{% if annotation.type == "highlight" %}{% if annotation.colorCategory %}{% if annotation.colorCategory == "Orange" %}
```ad-main_idea
{{annotation.annotatedText}}({% if pdfLink %}{% if citeKey %}[{{citeKey}}]{% elif citationKey %}[{{citationKey}}]{% else %}[Link]{% endif %}{% if annotation.attachment.desktopURI and annotation.page %}({{annotation.attachment.desktopURI | replace("select", "open-pdf")}}?page={{annotation.page}}){% else %}{{pdfLink | replace(r/^\[.*\]/, "")}}{% endif %}{% endif %})
```
{% elif annotation.colorCategory == "Yellow" %}
```ad-detail
{{annotation.annotatedText}}({% if pdfLink %}{% if citeKey %}[{{citeKey}}]{% elif citationKey %}[{{citationKey}}]{% else %}[Link]{% endif %}{% if annotation.attachment.desktopURI and annotation.page %}({{annotation.attachment.desktopURI | replace("select", "open-pdf")}}?page={{annotation.page}}){% else %}{{pdfLink | replace(r/^\[.*\]/, "")}}{% endif %}{% endif %})
```
{% elif annotation.colorCategory == "Red" %}
```ad-todo
- [ ] {{annotation.annotatedText}}({% if pdfLink %}{% if citeKey %}[{{citeKey}}]{% elif citationKey %}[{{citationKey}}]{% else %}[Link]{% endif %}{% if annotation.attachment.desktopURI and annotation.page %}({{annotation.attachment.desktopURI | replace("select", "open-pdf")}}?page={{annotation.page}}){% else %}{{pdfLink | replace(r/^\[.*\]/, "")}}{% endif %}{% endif %})
```
{% endif %}{% endif %}{% if annotation.comment %}{{annotation.comment}}{% endif %}{% endif %}{% endfor %}

这个模板有几个比较有意思的地方

  1. 元数据单独管理,可以方便迁移,本地链接全部存在元数据中。正文中不存在本地链接,直接复制到别的地方也可以正确的跳转
  2. 它的front-matter部分我直接按照Hexo博客模板给出,这样不仅可以更加方便的管理元数据,还可以让我直接复制粘贴到Hexo当作博文发布
  3. 搭配admonition使用可以实现贴纸效果,笔记一目了然,当然如果不喜欢也可以简化{% for annotation in annotations %}里面的实现

好啦,以上就是我探索出来的一套丝滑的工作流啦,希望能帮助到大家~

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
目录
相关文章
|
Linux 计算机视觉 Windows
金三银四求职季,Obsidian/Typora 简历模版 LapisCV 助你一臂之力!
金三银四求职季,Obsidian/Typora 简历模版 LapisCV 助你一臂之力!
487 1
|
人工智能 云计算 UED
西门子与阿里云达成战略合作
2023年6月29日,西门子与阿里云签署战略合作协议,双方将发挥在各自领域的技术优势,共同推动云计算、AI大模型与工业等不同场景的融合,赋能中国企业提升创新力和生产力,为中国经济的高质量发展注入加速度。
|
Windows
Anaconda卸载与重装过程记录
本文记录了博主Anaconda卸载与重装过程记录,此为博主电脑环境发生变化,无奈之举,希望对大家有所帮助
3094 0
Anaconda卸载与重装过程记录
|
存储 安全 数据管理
阿里云OSS图床搭建
阿里云OSS图床搭建
9661 3
|
1月前
|
存储 自然语言处理 搜索推荐
2026年阿里云无影云电脑零基础部署OpenClaw(Clawdbot)保姆级教程
OpenClaw(曾用名Clawdbot、Moltbot)作为一款开源AI自动化代理工具,凭借自然语言任务拆解、多工具集成调用、7×24小时不间断运行的核心特性,成为个人办公自动化与轻量团队协作的高效辅助工具。其区别于普通聊天机器人,核心优势在于可实际执行各类操作,涵盖系统文件读写、终端命令运行、浏览器自动化、邮件/日程管理等,支持对接阿里云百炼等主流大语言模型,通过简单自然语言指令即可完成复杂重复任务。
570 9
|
4月前
|
Python Windows
Miniconda 安装与环境配置全流程图解(2025 最新版)
Miniconda 可以看作是 Anaconda 的“轻装版”,只自带 conda 包管理器与基础的 Python 运行时。它体积小、部署速度快,特别适合按需创建与管理虚拟环境的用户。与 Anaconda 相比,Miniconda 不会预先安装一大堆科学计算库,你可以根据项目需求再单独选择、安装需要的包,因此整体更轻巧、更灵活。 本文将手把手演示在 Windows 下安装 Miniconda 的全过程:从下载安装器、完成向导配置、设置环境变量,到最后的基础验证与简单示例,帮助你迅速把 Miniconda 用起来。
5310 12
|
6月前
|
数据采集 人工智能 JSON
学会“读网页”:生成式 AI 在足球赛事信息整理中的实战
本文介绍了一个足球比赛信息提取教程,利用生成式AI从ESPN、虎扑、腾讯体育等网站抓取比赛报道,抽取比分、关键事件和球员表现等信息。步骤包括采集、清洗、分块、调用LLM抽取、校验与落地,以及可视化。需要准备Python环境、安装依赖库,并遵循合规性。提供了示例代码,演示如何从网页抓取文本并调用LLM接口获得结构化输出。
1238 3
|
人工智能 运维 数据可视化
阿里云百炼 MCP服务使用教程合集
阿里云百炼推出首个全生命周期MCP服务,支持一键部署、无需运维,具备高可用与低成本特点。该服务提供多类型供给、低成本托管及全链路工具兼容,帮助企业快速构建专属智能体。MCP(模型上下文协议)作为标准化开源协议,助力大模型与外部工具高效交互。教程涵盖简单部署、GitHub运营、数据分析可视化及文档自动化等场景,助您快速上手。欢迎加入阿里云百炼生态,共同推动AI技术发展!
8476 61
|
存储 前端开发 安全
Tauri 开发实践 — Tauri 原生能力
本文介绍了如何使用 Tauri 框架构建桌面应用,并详细解释了 Tauri 提供的原生能力,包括文件系统访问、系统托盘、本地消息通知等。文章通过一个具体的文件下载示例展示了如何配置 Tauri 来使用文件系统相关的原生能力,并提供了完整的代码实现。最后,文章还提供了 Github 源码链接,方便读者进一步学习和参考。
875 1
Tauri 开发实践 — Tauri 原生能力
|
11月前
|
JSON 数据格式
利用HTTP POST协议实现简单的RPC协议,并使用WireShark进行抓包分析
通过这种方式,我们可以利用HTTP POST实现简单的RPC协议,并使用WireShark进行抓包分析。这种方式简单易懂,实用性强,可以应用于各种网络编程场景。
481 16