Obsidian插件使用
这里记录了一些 Obsidan 插件的使用方法。
Tasks
如何设定任务?
按下两次回车键,或者输入 -[]。会在位置生成一个空的任务。也可以使用快捷键创建或者编辑任务。编辑任务可以设定任务的开始时间、结束时间、计划时间以及循环周期。设定结束后,该行任务后会跟随一个标记和时间,这个是 Tasks 插件自动生成的。
完成任务时,使用命令面板调出完成任务,或者设定相应的快捷键。则这个任务被标记为已完成,并在其后添加一个完成的时间。注意:直接点击勾选框完成任务,同样可以完成任务,但不能自动增加完成任务的时间。
如何聚合任务?
聚合任务是通过下述结构完成的。
1 | \`\`\`tasks |
这个结构可以有很多行:
- 第一行描述任务的状态,例如
not done,done,done on yesterday等。 - 第二行描述任务的时间限制,例如
due on tomorrow,due after today等。 - 第三行等描述更多的约束,例如
is not recurring表示非循环任务。 - 此外可以对任务的描述进行筛选等等,例如包含“阅读”两字描述的任务。
一个完整的聚合如下。其代表没有设定截止时间的、非循环的、描述中不含“阅读”两字的未完成任务。
1 | \`\`\`tasks |
Templater
如何插入模板
在插件目录中选择一个文件夹作为模板文件夹,模板文件夹下下的所有md文件都被视为模板,可以通过命令面板调用。例如下面的模板:
1 |
|
其调用结果为:
1 |
|
这个插件使用 <% %> 来描述需要插入的信息。
模板语法
<% %>这样的结构被称为命令,命令中包含的是变量或者函数。当在命令被执行的时候,这些变量会被带入、函数会被计算。一些内置的函数如下:
tp.web.daily_quote():今日格言tp.datetp.date.now():日期tp.date.tomorrow():明天日期tp.date.weekday():指定当周某一个天
tp.filetp.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 以页面作为单位整合数据。字段有三种定义方式:
- frontmatter
- 内联字段:
Name:: Value。 - 隐含字段: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 | \`\`\`dataview |
or,and等语言是可以使用的。From 有三种选择:- 标签:
From #tag - 文件夹:
From "folder" - 链接:选择链接到该文件的所有文件(
From [[note]]),或者从该文件连接的所有文件(From outgoing([[note]]))。
- 标签:
SORT date [ASCENDING/DESCENDING/ASC/DESC]WHERE file.mtime >= date(today) - dur(1 day)flatten强制将结果显示在一行之内
Buttons
创建按钮。例如下述代码在 Readings 文件夹下使用 Template-Book 作为模板,生成一篇名为 NewBook 的笔记。
1 | \`\`\`button |