Dataview
介绍
Dataview 是 Cards/FleetingNote/Obsidian 插件市场中排名第二的插件,可以使用 Dataview 查询语法列出、筛选、排序或分组数据(笔记的元数据,例如时间、tag 等)。
- 数据索引
- Dataview 不仅可以索引 Frontmatter,在正文中使用格式
[key:: value]也可被索引
- Dataview 不仅可以索引 Frontmatter,在正文中使用格式
- 数据查询
- Dataview 查询语法(DQL)
- 三部分:查询类型是必须的(LIST、TABLE)、源(From source)、其他数据命令(filter、group、sort)
- 行内声明
- JavaScript
- 元数据:可供索引
- 添加元数据
- Frontmatter
- Inline Fields
:: - 方括号用法,可在行内添加 key,
[due :: 2024-04-05] - 小括号用法,在阅读模式会隐藏
- dataview 将 key 小写并添加连字符
- 隐式字段
file.cday file.outlinks file.etags file.lists file.tasks
- Metadata on Pages - Dataview
- Metadata on Tasks and Lists - Dataview
- Data Types - Dataview --- 数据类型 - 数据视图
- 添加元数据
- DQL
- code block
- inline DQL
- Example: I love Dataview,Today is 2024-07-29T00:00:00.000+08:00, still got
= [[exams]].deadline - date(today)until exams! - 行内 DQL 无法查询多个页面,始终只显示一个值,查询其他页面的方法:
= [[other-page]].file.name - 距离元旦还有 P-7M
- 行内 DQL 可以使用函数
- Example: I love Dataview,Today is 2024-07-29T00:00:00.000+08:00, still got
- Dataview JS
- Inline Dataview JS
语法
一般形式:
<QUERY-TYPE> <fields>
FROM <source>
<DATA-COMMAND> <expression>
<DATA-COMMAND> <expression> ...
- Query Type 有 TABLE LIST TASK CALENDAR
- FROM
- 只能添加 0 个或 1 个 FROM 命令,且不能添加在数据命令之后
- FROM folder/tags/single files/
linksoutgoing([[links]])
- Data command
- 可以有多个 data command
- WHERE 根据笔记内元数据过滤
- SORT ASC DESC
- GROUP BY
- LIMIT
- FLATTEN 根据字段或计算拆分结果
- Expressions
- Functions
- JavaScript
Example
start:: 07h00m
end:: 18h00m
pause:: 01h30m
duration:: PT9H30M
LIST file.folder
SORT file.ctime DESC
LIMIT 10