编写于2022-04-06
参考https://blacksmithgu.github.io/obsidian-dataview/query/queries/
dataview代码
代码块内填写
TASK FROM #daily
where (this.file.day - file.day < dur(3 day)) and !completed and file.day != this.file.day
sort file.day desc
limit 5
优点是只筛选task,可以直接点击完成,不用点开文件
obsidian简化版dataview语法
obsidian中dataview使用的是简化版DQL语法,支持以下5个语句
TABLE|LIST|TASK <field> [AS "Column Name"]
FROM <source> (like #tag or "folder")
WHERE <expression> (like 'field = value')
SORT <expression> [ASC/DESC] (like 'field ASC')
LIMIT <number>
TABLE|LIST|TASK语句
TABLE|LIST|TASK <field> [AS "Column Name"]
TABLE|LIST|TASK
三者选择一个,决定dataview的展示形式是表格|列表|任务
其中一种,可以不加任何参数TABLE
可以是obsidian内部属性( 使用两个冒号,如author:: pirrede
)或者metadata的属性(文件头部属性,如 title: have_fun
)LIST author
AS "column Name"
使用TABLE
时可以自定义<field>
的列名TABLE this.file.day as “创建日期”
TABLE
多个<field>
可以连用,用,
隔开TABLE this.file.day,file.day
LIST
可以使用+
连接多个<field>
作为最后的名称LIST "File Path: " + file.path FROM "4. Archive"
LIST WITHOUT ID
# 不显示文件名
FROM语句
FROM <source> (like #tag or "folder")
- 通常是
标签
、文件夹
、链接
任意一个,常用标签
和文件夹
- LIST FROM 'Day Planners'
- LIST FROM #daily
- 也可使用链接,内部外部均可,请查看FROM语句
WHERE语句
WHERE <expression> (like 'field = value')
<expression>
中是各种属性判断,如contain,between,<,=,>,!等,可以使用and
,or
连接判断结果- 使用
this
代指当前文档where (this.file.day - file.day < dur(3 day)) and !completed and file.day != this.file.day
# 判断当前文件前3天内的文件,排除自身,然后筛选其中task是!completed
的结果
- 其他高级筛选方式见文档
SORT语句
SORT field1 [ASCENDING/DESCENDING/ASC/DESC], ..., fieldN [ASC/DESC]
按照field1的属性排序,升降序