Dataview进阶 —— 内联DQL查询

这篇文章是 Dataview专栏 系列 0 篇文章中的第 [part not set]

dataview

inline DQL 内联DQL查询

这里讲解一个前面没有提及的内容,就是 dataview 的内联查询,Inline DQL。大家可以将他和行内代码块类似,

日常我们使用大的代码块,但是还有一个行内代码块,这点 dataview 引用了和基础markdown语法类似的概念。可以在文章的任何地方插入查询语句,不再局限于固定的代码块查询。

基础语法-用英文单引号包裹

'=this.file.name'

联合使用-嵌入正文中

Today is = date(today) - = [[exams]].deadline - date(today) until exams!

通过前缀访问 当前页面 的属性

= this.file.name
= this.file.mtime
= this.someMetadataField
= [[secondPage]].file.name
= [[secondPage]].file.mtime
= [[secondPage]].someMetadataField

[!success] 内联语法的用途
- 他的主要作用是只显示一个值,那么就可以嵌入到任何的地方。不受样式的限制。在实时预览,和阅读模式下生效。
- 内联查询无法查询多个页面。它们始终只显示一个值,而不是值的列表(或表)。您可以通过前缀访问当前页面的属性,也可以通过 访问其他页面的属性。this.``[[linkToPage]]

内联数据视图中的JS

和普通的dataview语法一样,还有对应的 dataviewjs 语法。内联查询也同样可以使用 JavaScript 的能力,写入更灵活的语法。
JS 内联查询演示

  • 规范,同样是使用英文的单引号包裹语法,如下
$= dv.current().file.mtime

[!success] JS内联查询和内联查询的区别
与内联 DQL 查询不同,内联 JS 查询可以访问 Dataview JS 查询可用的所有内容,因此可以查询和输出多个页面。
在内联 DataviewJS 中,您可以像在代码块中一样访问变量,并且可以进行所有相同的调用。结果 应该是计算结果为 JavaScript 值的东西,Dataview 将自动适当地呈现该值。dv dataviewjs