这里记录了一些 Obsidan 插件的使用方法。

Tasks

如何设定任务?

  按下两次回车键,或者输入 -[]。会在位置生成一个空的任务。也可以使用快捷键创建或者编辑任务。编辑任务可以设定任务的开始时间、结束时间、计划时间以及循环周期。设定结束后,该行任务后会跟随一个标记和时间,这个是 Tasks 插件自动生成的。

  完成任务时,使用命令面板调出完成任务,或者设定相应的快捷键。则这个任务被标记为已完成,并在其后添加一个完成的时间。注意:直接点击勾选框完成任务,同样可以完成任务,但不能自动增加完成任务的时间。

如何聚合任务?

  聚合任务是通过下述结构完成的。

1
2
3
\`\`\`tasks

\`\`\`

  这个结构可以有很多行:

  1. 第一行描述任务的状态,例如 not donedonedone on yesterday等。
  2. 第二行描述任务的时间限制,例如 due on tomorrowdue after today等。
  3. 第三行等描述更多的约束,例如 is not recurring 表示非循环任务。
  4. 此外可以对任务的描述进行筛选等等,例如包含“阅读”两字描述的任务。

  一个完整的聚合如下。其代表没有设定截止时间的、非循环的、描述中不含“阅读”两字的未完成任务。

1
2
3
4
5
6
\`\`\`tasks
not done
no due date
is not recurring
description does not include 阅读
\`\`\`

Templater

如何插入模板

  在插件目录中选择一个文件夹作为模板文件夹,模板文件夹下下的所有md文件都被视为模板,可以通过命令面板调用。例如下面的模板:

1
2
3
4
5
6
7
8
9
10
---
creation date: <% tp.file.creation_date() %>
modification date: <% tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm:ss") %>
---

<< [[<% tp.date.now("YYYY-MM-DD", -1) %>]] | [[<% tp.date.now("YYYY-MM-DD", 1) %>]] >>

# <% tp.file.title %>

<% tp.web.daily_quote() %>

  其调用结果为:

1
2
3
4
5
6
7
8
9
10
11
---
creation date: 2021-01-07 17:20
modification date: Thursday 7th January 2021 17:20:43
---

<< [[2021-04-08]] | [[2021-04-10]] >>

# Test Test

> Do the best you can until you know better. Then when you know better, do better.
> &mdash; <cite>Maya Angelou</cite>

  这个插件使用 <% %> 来描述需要插入的信息。

模板语法

  <% %>这样的结构被称为命令,命令中包含的是变量或者函数。当在命令被执行的时候,这些变量会被带入、函数会被计算。一些内置的函数如下:

  • tp.web.daily_quote():今日格言
  • tp.date
    • tp.date.now():日期
    • tp.date.tomorrow():明天日期
    • tp.date.weekday():指定当周某一个天
  • tp.file
    • tp.file.content():文章内容
    • tp.file.create_new(template: TFile ⎮ string, filename?: string, open_new: boolean = false, folder?: TFolder):使用一个设定的模板创建一个新文件
    • tp.file.creation_date():文件创建时间
    • tp.file.cursor(order?: number):文件指针的访问顺序
    • tp.file.last_modified_date():最后更改时间
  • tp.frontmatter.<frontmatter_variable_name>:调用笔记的 frontmatter。

Dataview

  Dataview 以页面作为单位整合数据。字段有三种定义方式:

  1. frontmatter
  2. 内联字段:Name:: Value
  3. 隐含字段:Dataview 自带的元数据,例如文件创建日期等。

常用隐含字段

  • file.name: 该文件标题(字符串)。
  • file.folder: 该文件所在的文件夹的路径(字符串)。
  • file.ctime: 该文件的创建日期(日期和时间)。
  • file.cday: 该文件的创建日期(仅日期)。
  • file.mtime: 该文件最后编辑日期(日期和时间)。
  • file.mday: 该文件最后编辑日期(仅日期)。
  • file.tags: 笔记中所有标签组成的数组。子标签按每个级别进行细分,所以#Tag/1/A将会在数组中储存为[#Tag, #Tag/1, #Tag/1/A]。
  • file.etags: 笔记中所有显式标签组成的数组;不同于file.tags,不包含子标签。

查询语言

  查询语言有三种类别:表格、列表和任务列表。通用格式如下:

1
2
3
4
5
6
\`\`\`dataview
TABLE|LIST|TASK <field> [AS "Column Name"], <field>, ..., <field>
FROM <source> (like #tag or "folder")
WHERE <expression> (like 'field = value')
SORT <expression> [ASC/DESC] (like 'field ASC')
\`\`\`
  1. orand 等语言是可以使用的。From 有三种选择:
    1. 标签:From #tag
    2. 文件夹:From "folder"
    3. 链接:选择链接到该文件的所有文件(From [[note]]),或者从该文件连接的所有文件(From outgoing([[note]]))。
  2. SORT date [ASCENDING/DESCENDING/ASC/DESC]
  3. WHERE file.mtime >= date(today) - dur(1 day)
  4. flatten 强制将结果显示在一行之内

Buttons

  创建按钮。例如下述代码在 Readings 文件夹下使用 Template-Book 作为模板,生成一篇名为 NewBook 的笔记。

1
2
3
4
5
\`\`\`button
name Add a new book
type note(/Readings/NewBook) template
action Template-Book
\`\`\`