我的 Obsidian 工作流:模板+QuickAdd+Dataview 快速创建和自动索引

你可以想象到的最优雅的输入方式

嗨,大家!

不知不觉,使用Obsidian已经一年了,从一开始无从下手,到在日记(Obsidian的核心插件)中写一元笔记,从写写流水帐,到它几乎承包了我所有的笔记场景。而我也从一个笔记爱好者成为了一名写作者。

我的笔记场景经过一轮更新重组,变为了以下这些:

  1. 闪念笔记:随时记录闪念,到当天日记。如果有需要展开的闪念,则在时间充裕时单独做一张卡片。
  2. 文献笔记:即阅读和观影笔记。阅读产生的思考会在阅读完之后拆分到新的卡片。
  3. 项目笔记:为写作而服务,分为灵感提案、写作中的文章和已完成的文章。

当我的文章多起来以后,我发现要找到它们开始变得困难。我会想知道我有哪些灵感是还没有写的,这样我接下来可以构思新文章;哪些是正在写作的,方便我继续写;哪些是已经发布的;哪些只发布了一个平台,另一个平台还在等待发布。

怎么解决呢?我想到了Dataview插件,它根据不同的条件生成文件目录。于是我设计了一些属性,用于提案笔记和输出笔记,让他们可以被Dataview识别,自动帮我归好类。

整理之后果然非常清晰明了,打开项目索引笔记,我就可以看到现在进行中的项目,灵感库还有哪些是还没写的,还有展示已发布的项目列表,每次看到都有一种成就感。

接下来,为了让每一次新建的提案笔记能够被目录分别收录,我统一了创建提案笔记的模板,使用快速添加命令直接创建一条提案笔记,就能让这条新灵感被项目列表的灵感库所收录。

搞定了这一个工作流,其他的笔记也可以复制这一整套流程。

今天要为大家介绍的就是:使用 模板+QuickAdd+Dataview 打造快速创建和自动索引的工作流。

这个工作流对我来说大大精简了笔记操作步骤,让重点回归到写作本身。相信对于经常写阅读笔记和输出笔记的小伙伴都会有帮助。

我的工作流演示

先来演示一下我的提案笔记的一整个流程:

我的工作流演示

它们在做什么?

  1. 我用快捷键【Ctrl+Shift+T】唤起了快速输入【提案笔记】
  2. 键入名字后回车
  3. 自动新建了一条提案笔记
  4. 它被自动放在我的项目笔记文件夹下
  5. 并且自动插入了我的提案笔记模板
  6. 同时自动汇入了项目索引下的Idea库列表

它们是如何配合工作的?

  • 模板文件:以少量的模板语法编写,可以在创建文件时自动写入文件名和创建时间。使用了dataview能够识别的属性,方便自动建立索引。
  • quickAdd:quickAdd 使用模板创建了新的文件,并存放到指定的文件夹。如果你还在用新建文件再移动到想要的目录这种方式,相信你用过quickAdd之后一定会爱上。
  • Dataview:使用搜索语句生成索引目录,因为写好了语句,当有新的文件满足它的条件时,会自动更新目录。

其他的一点小魔法:

  • 命令面板 + 快捷键:由于把quickAdd添加到了命令,并且设置了快捷键。于是做到了一键唤出,直接输入名称即可创建好一个笔记。

工作流打造开始

第一步:明确你想要在索引页面看到什么

不考虑是否能实现,你想要在索引页面看到什么样的内容呢?你的应用场景是什么?你期望以什么形式展示你的信息呢?

接下来以我写读书笔记的真实场景为例。由于我做了一些读书笔记,现在我想要一个书目列表,能看到我的阅读记录。

我想要展现的内容是:书的名称、作者、图书分类、阅读来源、阅读状态。

这些都想清楚之后,就可以开始动手了。

第二步:设计字段

要想要能够在索引页面展现这些字段(书名、作者、阅读来源、阅读状态),我们需要向读书笔记里添加这些属性。

有两种方式可以给文件添加属性,一种是之前在Dataview教程里提到的yaml,另一种是字段名::字段值这样的写法。两种写法都可以被Dataview识别。

使用yaml,或者字段名::字段值这样的写法,以方便dataview能够读取。

鉴于在上一篇文章中已经演示过如何用yaml添加属性了,这次我们演示另一种写法:

书名:: 
作者::
分类:: 
来源::
阅读状态::
开始日期:: 
读完时间:: 

先在一个读书笔记中写上这些内容,将已有的信息对应填上去,作为备用。如果你还没有读书笔记文件,也可以跟着建一个测试的文件,将上方内容复制进去,一会儿我们会看到效果。

下面是我的演示文件:

第三步:Dataview 建立索引

创建一个新文件,命一个你容易识别的名字,比如我新建一个索引文件夹,专门放各类索引。把这个新文件命名为“阅读列表”。

开始写Dataview代码:

```dataview
table 书名,作者,分类,来源,阅读状态
from "工作流演示/文献"
sort file.ctime desc
```

table:创建一个表格。后面跟的“书名,作者,分类,来源,阅读状态”都是我们设计好的字段名,注意是字段名而不是字段值哦。另外逗号必须是英文逗号

from:检索的文件范围。我这里写的是《大学》这个读书笔记文件所在的文件夹。如果想从全库检索,则直接写空字符串""

where:检索条件。我这里暂时没有写,则不做过滤。

sort:排序。使用了Dataview给文件默认添加的属性file.ctime,意思是文件创建时间。desc是排序方式,倒叙。想要正序效果,请使用asc

最后来看看效果。刚才的测试文件已经被加载出来了。

第四步:新建模板

既然我们设计的字段可以展现出想要的索引效果,那么就可以把它存成模板了。

在你的模板文件夹,新建一个文件,命名“阅读笔记模板”。模板内写入一下内容:

书名:: {{NAME}}
作者::
分类:: 
来源::
阅读状态::
开始日期:: {{DATE:YYYY-MM-DD}}
读完时间:: 

:arrow_up:上面这段使用了2个模板语法:

  • {{NAME}}:文件名。会自动在创建文件时写入当前文件名。
  • {{DATE:YYYY-MM-DD}}:是日期的语法。写在这里是想要自动记录开始阅读的日期。
    • YYYY2021格式的年;
    • MM是2位格式的月的写法,输出是08
    • DD是2位格式的日期,如010217

第五步:quickAdd

quickAdd 是什么?

quickAdd 可以直接理解为快速添加。它可以添加两种类型:

  1. 捕捉输入,插入到指定文件的指定位置
  2. 使用已有模板快速添加一个文件,可以指定文件位置

我这里说的比较简单,它还可以做到一些比较复杂的指令,但是本文只介绍简单的用法,让它能够快速为你所用。本文没有什么门槛,请放心食用。

设置一个快加命令

请先安装quickAdd插件,如何安装这里不再赘述,前面文章都有写到。

1、新建一个快加指令

打开quickAdd设置界面。我们选择使用Template类型,输入一个名字作为命令名。点击Add Choice确认添加。

添加一个快加命令

操作过后一个新的命令就新建好了。

quickAdd的类型:

  1. Template:使用模板新建文件。
  2. Capture:捕获。捕获输入内容,添加到指定文件内部。
  3. Macro:宏指令。本文不涉及。
  4. Multi:多菜单。这个很简单,但本文也先不讲。

2、设置该指令

点击该命令右侧的齿轮:gear:进行设置。

下面解释一下各设置项的意思:

  • Template Path:模板文件路径。在这里选择上一步我们创建好的模板文件。
  • File Name Format:文件名格式,是一个开关。关闭此开关会默认以输入的内容作为新建文件的文件名。打开此开关我们就可以在File Name指定文件名的格式。
    • File Name:文件名。只有当File Name Format开关打开时才可以编辑。比如你想要按照日期加上输入文本来命名,则可以写{{DATE:YYYY-MM-DD}}-{{VALUE}}
  • Create in folder:是否创建到文件夹。打开状态会将新文件存放在下方选择的文件夹内。
    • Choose folder when creating a new note:新笔记存放的位置。只有当上一个设置项为打开状态时才会出现。选择路径后,记得点击一下选择框右侧的Add添加。
  • Create in same folder as active file:将新笔记存放在当前打开的笔记同一个文件夹。这个选项和上一个选项只用打开一个即可。
  • Append link:是否添加新笔记的链接到当前文件。
  • Increment file name:增量文件名。打开后,如果已存在同名文件,则会在文件名后面增加数字。
  • Open:是否打开新建文件。
  • New Tab是否在新的面板打开新建笔记。

你可以先照着我截图中的设置,来设置自己的设置项。这样有助于你快速看到和本文一样的效果。

关闭这个设置面板,设置会自动保存。

3、添加到命令,并设置快捷键

添加到命令

点亮阅读笔记命令右侧的闪电:zap:图标

点亮阅读笔记命令右侧的闪电:zap:图标,将“阅读笔记”命令添加到命令面板。

现在,我们可以在命令面板找到这个命令了。如果你想要快速找到它,可以给该命令置顶

置顶命令

如果你想要更快的操作,还可以给这个命令添加快捷键。

给命令添加快捷键,我设置的是Command+shift+B

现在我们就能用快捷键【Command/Ctrl+shift+B】来唤起【QuickAdd:阅读笔记】命令了。

验收成果

现在我们来使用快捷键唤起【QuickAdd:阅读笔记】命令,并输入一个书名试一下。

成果演示

一个新的阅读笔记就创建好了,它被存放在“工作流演示/文献”文件夹下,笔记内自动添加了我们设计好的阅读笔记模板,并且自动写入了笔记名称和当前日期。

而我们的阅读列表,也实时更新了。

后记

这篇文章很长,介绍了我在Obsidian里的工作流,它能够帮我节省很多诸如新建文件、移动文件到文件夹、插入模板等操作,对我来说十分的方便与顺手。

希望能给你一点灵感打造属于自己的工作流。

欢迎在下方展示你的成果,也欢迎留下你的使用小技巧。

(这个工作流使用已经一个多月了,目前仍然运行在我的输出笔记流程上,请大家放心食用。)

20 个赞


好文。请问下 文本框内的图片无法显示 需要怎么设置呢?

1 个赞

全文复制到ob看

之前看过这篇文稿,已经全套使用起来了,感觉很不错。但私心想要向L佬提个需求:
因为作为书单目录会有一定累积,所以想要一个可视化的能看到整体阅读进度的方案。之前看到有结合kanban现实百分比进度条的案例,但自己没有办法融入现有这份的工作流。

1 个赞

我想查询当前页面的标签该怎么办呢?
比如,我想查询当前页面的uid

    ```dataview
    table uid from 当前页面
    ```

有“当前页面”这个属性吗?

这句话是核心,学起来,用起来哈