obsidian增强展示(dataview插件介绍)


图源:群友Vast & Hazy

摘要

本文介绍了dataview插件,能检索卡片中的yaml字段,加上检索条件限定,最后以list、table或task形式展示。该插件属于高级插件,初学者可以延后学习。

个人的话

本文介绍的dataview插件为obsidian提供了一定的数据检索和展示功能,属于实用的高阶插件,入门门槛很高,如果是轻度用户可以不使用本插件。该插件具体运行得到的效果就如同群友Vast & Hazy所展示的那样(上图),很吸引人。但该插件目前在发布页面,不能呈现本地的效果。

这个插件和之前介绍的timelines有2个类似的地方:

  1. 需要检索yaml中的元数据信息
  2. 运行时使用代码块

插件介绍

dataview插件是由blacksmithgu编写,此时版本是0.1.10。
Github页面: https://github.com/blacksmithgu/obsidian-dataview
蓝奏云页面: https://wws.lanzous.com/iFdUIn5rmre
官方说明: https://github.com/blacksmithgu/obsidian-dataview
本文主要参考官方说明文档,但没有全部翻译且可能翻译有误,如果大家感兴趣请直接前往说明文档页面阅读全文。

dataview语句

dataview语句如下

```dataview
[list|table|task] field1, (field2 + field3) as myfield, ..., fieldN
from #tag or "folder"
where field [>|>=|<|<=|=|&|'|'] [field2|literal value] (and field2 ...) (or field3...)
sort field [ascending|descending|asc|desc] (ascending is implied if not provided)
```

语句的解释

上述语句太过复杂,我只简单介绍一些内容。

dataview有三种表现形式list、table、task。

  • list:将检索到的所有内容以列表形式展现。

  • table:将检索到的所有内容以表格形式展现。

  • task:检索内容中所有TODO和DONE的任务,分别展示。

  • Where:可以指定从某个标签(在yaml字段中的标签),或某个文件夹中检索信息。

  • sort:排序:可以按某个字段进行排序,可以升序(使用参数ascending、asc)或降序(使用参数descending、desc)

Field 字段

  • file.name: The file title. 文件标题
  • file.path: The full file path. 文件路径
  • file.size: The size (in bytes) of the file. 文件大小
  • file.ctime: The date that the file was created. 文件的创建时间
  • file.mtime: The date that the file was last modified. 文件的修改时间
  • file.day:The date contained in the file title. 特指一类文件名具有yyyy-mm-dd(年-月-日,例如2021-03-21)特征的文件。

yaml的设置

dataview检索的是文档的中自建的yaml字段。官方说明中games的例子,应该是在文件的yaml中附上了time-played, length, rating三个值。本文开始群友Vast & Hazy图中的Start Date、End Date和Status字段也应该是在卡片yaml中设定的,并以table形式展示。

下面的的操作就是在卡片中加上了Date字段,字段没有特殊要求,但是需要注意符合要全英文。

---
tags: [timeline, 美图,花]
Date: 2021-03-15
---

实际操作


实际操作如上。大家可以前往ob教程下载, https://gitee.com/cyddgi/obsidian-chinese-help 。我这里也提供这次使用的三张卡片

卡片

以下三张是我制作用于演示的卡片。大家可以在ob中创建3个新的文件,将下面内容复制过去。

---
tags: [timeline, 美图,花]
Date: 2021-03-15
---

<span class='ob-timelines' data-date='2021-03-14-00' data-title='花朵' data-img = 'https://gitee.com/cyddgi/picture-store/raw/master/img/20210314193052.png' data-class = "customCardCSS">插入描述的区域</span> 
本图来自:https://www.pexels.com/zh-cn/photo/5706559/
---
tags:  [timeline, 美图]
Rating: 5
Date: 2021-03-14T19:32:20
---

<span class='ob-timelines' data-date='2021-03-10-08' data-title='相框' data-img = 'https://gitee.com/cyddgi/picture-store/raw/master/img/20210314193230.png' data-class = "customCardCSS"> 本图来自:https://www.pexels.com/zh-cn/photo/5797991/ </span> 

正文开始~~~
- [ ] 下载这张图片
---
tags: [timeline, 美图]
Rating: 4
Date: 2021-03-13
---

<span class='ob-timelines' data-date='2021-03-10-13' data-title='树叶' data-img = 'https://gitee.com/cyddgi/picture-store/raw/master/img/20210314193609.png' data-class = "customCardCSS"> 本图来自:https://www.pexels.com/zh-cn/photo/6805871/</span> 
正文开始~~~


- [x] 下载这张图片

展示

下面是用于展示的语句,大家在复制完上述卡片后,可以新建一张卡片,复制下面内容后,切换到预览模式。

以table方式来呈现

```dataview
table Date from #美图 
sort file.ctime desc
```

展示所有标签带有“美图”卡片中Yaml内的Date,并且按文件的创建时间降序。

以task方式来呈现

```dataview
task from "17 插件演示"
```

展示"17 插件演示"文件夹内所有的任务,包括TODO和DONE。

以list方式来呈现

```dataview
list from #美图 
sort file.size asc
```

以列表形式展示所有标签带有“美图”卡片,并且按文件的大小升序。