DataView

可以根据 table 生成一些表单,如果需要样式,需要根据主题变换

Dataview 主要由 annotation 和 querying 两大组件构成。下面说下这两类组件的用法。

QUERY-TYPE 展示方式

1. TABLE 表格

以表格的形式显示符合查询条件的文件清单和相关属性。

```dataview
TABLE WITHOUT ID
  file.link as "文件名称",
  aliases as "别名",
  dateformat(file.cday,"yyyy-MM-dd") as "创建日期",
  choice(file.starred, "是", "否") as "加星"
FROM "200-学习箱/210-知识库搭建"
SORT file.cday DESC
```

2. LIST 列表

以无序列表的形式显示符合查询条件的文件清单。

```dataview
LIST
FROM "200-学习箱/210-知识库搭建"
```

3. TASK 任务

仅以任务列表的形式显示符合查询条件的任务列表。

```dataview
TASK
FROM "200-学习箱/210-知识库搭建"
```

4. CALENDAR 日历

以日历视图的形式显示查询结果,日历现在还有个 Bug,经常会显示两个重复月份的日历。

```dataview
CALENDAR file.cday
WHERE contains(file.name, "PicGo")
```
//必须加日期型的字段作为日历中的定位
CALENDAR file.cday
WHERE contains(file.name, "PicGo")

隐形字段

以下为  Dataview  自动插入的「隐式字段」,我们在代码中都可以直接使用:

  • file.name:笔记的标题。
  • file.folder:此文件所属文件夹的路径。
  • file.path:完整文件路径(字符串)。
  • 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

实际使用

每日回顾

配合CustomJS

// dataview
List
where file.name= dateformat(date(today)-dur(1 year), "yyyy-MM-dd")
or file.name= dateformat(date(today)-dur(2 year), "yyyy-MM-dd")
or file.name= dateformat(date(today)-dur(3 year), "yyyy-MM-dd")

参考链接