10. March 2023
#dataview/查找表
Dataview 会自动为每个页面添加大量元数据:
file.name
:文件标题(字符串)。file.folder
:该文件所属文件夹的路径。file.path
:完整的文件路径(字符串)。file.ext
: 文件类型的扩展名;通常是“.md”(一个字符串)。file.link
:文件的链接(链接)。file.size
:文件的大小(以字节为单位)(一个数字)。file.ctime
:文件的创建日期(日期+时间)。file.cday
:文件的创建日期(只是一个日期)。file.mtime
:文件最后修改的日期(日期+时间)。file.mday
:文件最后修改的日期(只是一个日期)。file.tags
:笔记中所有唯一标签的数组。子标签按每个级别细分,因此#Tag/1/A
将存储在数组中[#Tag, #Tag/1, #Tag/1/A]
。file.etags
:注释中所有显式标签的数组;不像file.tags
, 不包括子标签。file.inlinks
:指向此文件的所有传入链接的数组。file.outlinks
:此文件中所有传出链接的数组。file.aliases
:笔记的所有别名的数组。file.tasks``- [ ] blah blah blah
:此文件中所有任务(即,)的数组。file.lists
:文件中所有列表元素的数组(包括任务);这些元素是有效的任务,可以在任务视图中呈现。file.frontmatter
:包含所有frontmatter的原始值;主要用于检查原始 frontmatter 值或动态列出 frontmatter 键。如果文件在其标题(表单yyyy-mm-dd
或yyyymmdd
)中有日期,或者有一个Date
字段/内联字段,它还具有以下属性:
file.day
:与文件关联的明确日期。如果您使用 Obsidian 默认的“加星标文件”插件,还可以使用以下元数据:
file.starred
:如果此文件已被“星星”黑曜石插件加注星标。1 (number) true/false (boolean) "text" (text) date(2021-04-18) (date) dur(1 day) (duration) [[Link]] (link) [1, 2, 3] (list) { a: 1, b: 2 } (object)
(x1, x2) => ... (lambda)
field (directly refer to a field)
simple-field (refer to fields with spaces/punctuation in them like "Simple Field!")
a.b (if a is an object, retrieve field named 'b')
a[expr] (if a is an object or array, retrieve field with name specified by expression 'expr')
f(a, b, ...) (call a function called f
on arguments a, b, ...)
a + b (addition) a - b (subtraction) a * b (multiplication) a / b (division) a % b (modulo / remainder of division)
a > b (check if a is greater than b) a < b (check if a is less than b) a = b (check if a equals b) a != b (check if a does not equal b) a <= b (check if a is less than or equal to b) a >= b (check if a is greater than or equal to b)
[[Link]].value (fetch value
from page Link
)
数据视图“源”是标识一组文件、任务或其他数据对象的东西。数据视图在内部对源进行索引,因此查询速度很快。Dataview 目前支持四种源类型:
#tag
。这些匹配具有给定标签的所有文件/部分/任务。"folder"
。这些匹配给定文件夹中包含的所有文件/部分/任务。"folder/File"
.
folder/File.md
.[[note]]
所有页面,请使用[[note]]
.[[note]]
所有页面(即该文件中的所有链接),请使用outgoing([[note]])
.[[#]]
您可以通过或隐式引用当前文件[[]]
。您可以组合这些过滤器,以便使用and
和获得更高级的资源or
。
#tag and "folder"
将返回所有页面folder
和#tag
.#food and !#fastfood
只会返回包含#food
但不包含#fastfood
.[[Food]] or [[Exercise]]
将给出任何链接到[[Food]]
OR的页面[[Exercise]]
。如果您有复杂的查询,分组或优先级很重要,您可以使用括号对它们进行逻辑分组:
#tag and ("folder" or #other-tag)
(#tag1 or #tag2) and (#tag3 or #tag4)
源用于FROM 查询语句以及各种 JavaScript API 查询调用。