Obsidian DataView插件介绍

背景

Obsidian 原本是基于纯文本的,它只设计了基础的数据查询功能(也就是你打开 Obsidian 后能看到的搜索框),它本不支持将这些数据动态展示以及动态更替;不过事情在今年的 1 月 11 日~13 日这短短三天发生了变化,Obsidian 社区先后迎来了 Obsidian Query Language 插件以及 Dataview 插件,如果你曾经使用过这两者中的其一,你就会发现他们对数据都是动态索引、动态展示的,而这种方式就是我们所熟知的结构化查询语言,不过目前并不支持在查询后对对应的文本进行删改,因此只能说是 50% 结构化查询,侧重于执行查询、取回数据以及创建视图三大方面。

目前,Obsidian 作为日常记录文本的主力软件,想要简单介绍一些 Obsidian 使用过程中使用到的插件。首先就来介绍下载量最多的插件 —— DataView 插件。

网上已经有了很多关于 DataView 插件的介绍,对于我而言,DataView 给 Obsidian 带来了史诗级的加强,主要在于这插件能在这种记录文本的软件上提供类似数据库操作,可以自定义查询过滤操作。

基本方法

[!important]
因为主要使用 Table 方面,因此主要讲解关于这方面的方法

如果是接触过 SQL 语句,这样上手 DataView 就会简单超级多

在代码块中选择 dataview 类型就是在编辑 DataView 方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBs3G5Fg-1665847671765)(source/Pasted%20image%2020221015225340.png)]

模版类型

以上是 DataView 插件提供的模版,可以看出其中使用 list|table|task 关键词表示 DataView 提供的三种模版类型,在日常使用的过程中,使用 table 类型会比较多。

任务类型的文件也有很多,但没有使用 DataView 的 task 类型表示,而是使用 Obsidian 中的 Task 插件

展示数据

指定模版类型之后就要选择需要展示的数据(field 部分),其中 DataView 已经提供了一部分属性。在平时查询的过程中,使用这些属性已经足够了,但如果还需要自定义属性的话,可以通过使用这些属性构建表达式完成。

当然这些属性也可以想在 SQL 语句中那样起别名,也是使用 AS 关键词。

  • filed.name:文件标题
  • filed.folder:该文件所属文件夹的路径
  • filed.path:完整的文件路径
  • filed.link:文件的链接
  • filed.size:文件的大小
  • filed.ctime:文件的创建时间
  • filed.cday:文件的创建日期
  • filed.mtime:文件的修改时间
  • filed.mday:文件的修改日期
  • filed.tags:笔记中所有标签的数组,子标签按照每个级别细分
  • filed.etags:排除的标签,与 tags 相反
  • filed.inlinks:指向此文件的所有链接的数组
  • filed.outlinks:此文件所有出站链接的数组
  • filed.aliases:注释的所有别名数组

数据来源

照着 SQL 语句的形式,选择完展示的数据之后就要选择数据来源,也就是 From 之后的数据来源,不同于 SQL 语句数据来自于数据库表,DataView 数据来自于各个 Folder 笔记文件夹,Tag 标签以及 Link 链接。

Folder 笔记文件夹使用 “” 表示, Tag 标签使用 # 表示,Link 使用 [[]] 表示

这里与 SQL 语句有个很大的不同就是连接多个数据来源的,DataView 插件只需要 () 以及 or 的结合使用,就可以连接多个文件

数据过滤

数据过滤跟 SQL 语句类似,这里就不再多说,只要在 Where 关键词后面添加关于属性的判断即可

排序

主要是 Desc 降序和 Asc 升序两种,使用 sort 关键词,选择排序依据的属性,再选择是 Desc 还是 Asc 方式即可

例子

在这里插入图片描述

参考资料

DataView插件Github

DataView属性

### 如何在 Obsidian 中使用 Dataview 插件 #### 安装 Dataview 插件 为了能够在 Obsidian 中利用 Dataview 功能,需先安装该插件。前往社区插件市场,在搜索栏输入 "dataview" 并点击安装按钮完成安装过程[^2]。 #### 启用 JavaScript 支持 Dataview 是基于 JavaScript 构建的查询语言,因此需要启用安全设置里的 “允许脚本执行”。这一步骤对于解锁全部特性至关重要[^1]。 #### 基础语法学习 掌握基础的数据视图表达式是必要的。例如创建表格、列表或是卡片形式展示数据。具体来说: - **Table 表格**: 可以用来整理多列信息。 ```dataview table name as "Name", age as "Age" from "" where contains(file.name, "personnel") ``` - **List 列表**: 展现一系列条目非常方便。 ```dataview list title as "Title" from "books" sort year desc limit 5 ``` - **Card 卡片**: 提供更丰富的视觉呈现方式 ```dataview card file.name as "Note Title" from "" where file.name != this.file.link group by author ``` 上述例子展示了不同类型的数据显示方法以及如何筛选特定文件夹内的内容或应用条件过滤器来获取所需的信息片段[^3]。 #### 实际应用场景举例 假设有一个关于书籍阅读记录的笔记库,则可以构建如下查询语句用于统计每本书籍被提及次数并按降序排列显示前五名的结果集: ```dataviewjs dv.table(["Book","Count"], dv.pages().groupBy(p => p.book).map(g=>[g.key,g.items.length]).sort((a,b)=>b[1]-a[1]).slice(0,5)) ``` 这段代码实现了从所有页面中提取 `book` 字段作为分组依据,并计算各组成员数量最后选取最多五个结果输出成表格格式。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值