- Obsidian插件Dataview —— 安装与设置(一)
- Obsidian插件Dataview —— YAML简介(二)
- Obsidian插件Dataview —— 认识属性(三)
- Obsidian插件Dataview —— 数据查询(四)
- Obsidian插件Dataview —— DQL查询语言详解(五)
- Obsidian插件DataviewJS —— TypeScript速成(六)
- Obsidian插件Dataview —— 深入理解DataviewJS(七)
- Obsidian插件Dataview —— JavaScript API 快速入门(八)
- Obsidian插件Dataview —— DataArray接口介绍(九)
- Obsidian插件Dataview —— Dataviewjs JavaScript API 进阶用法(十)
- Obsidian插件Dataview —— Luxon库介绍(十一)
- Obsidian插件Dataview —— 实用案例讲解(初级篇)(十二)
- Obsidian插件Dataview —— 实用案例讲解(中级篇)(十三)
- Obsidian插件Dataview —— 实用案例讲解(高级篇)(十四)
- Obsidian插件Dataview —— 函数合集(十五)
在 Obsidian 中,YAML 是一种用于配置文件和元数据的标记语言。YAML 语法简洁明了,易于阅读和编写,使得在 Obsidian 中描述属性变得更为便捷。
在 Obsidian 中,YAML 通常用于为笔记添加元数据,如标题、标签、别名等。这些元数据可以帮助你更好地组织和管理笔记。具体来说,YAML 在 Obsidian 中的使用方式如下:
在笔记的开头使用三个短横线(—)来定义一个 YAML 区域,也称之为 Front Matter。在这个区域内,你可以使用 YAML 语法为笔记添加各种元数据,例如,使用 tags 来添加标签,使用 aliases 来设置别名,使用 cssclasses 来设置文档样式等。
---
title: Obsidian 达人成长之路 #1:使用终极工具 Dataview 释放笔记库的潜力 · DQL查询语言
date: 2024-05-08
tags: ['Blog', 'Obsidian', 'Dataview']
alias: 别名
---
主体内容
一、基本语法
在 YAML 语言中变量名是区分大小写的,因此 one
与 One
是不同的实体。
使用 #
来表示注释。
使用缩进来表示层级关系,并且只能使用空格来缩进,同一层级在空格数量上需要保持一致。
一个文件中是可以包含多个 ---
区域的。
# 这是注释
one:
two: 2
three:
four: 4
five: 5
// JSON
{
"one": {
"two": 2,
"three": {
"four": 4,
"five": 5
}
}
}
二、数据结构与类型
YAML 支持数字、布尔、字符串、数组和对象这几种常见类型,以及空值和时间缀。
1. 字符串
字符串一般不需要用引号(不区分单/双引号,但必须成对)包裹,但是如果字符串中包含转义字符(以反斜杠 \
开头,如换行:\n
)就必须引号包裹。
字符串分为单行和多行文本,在多行文本中还可能包含空白行(是否保留?),因此会有不同的语法扶持。
strings:
- Hello Dataview
- 'Hello Dataview with single quotes'
- "Hello Dataview with double quotes"
- "Include Unicode. \u263A"
- "Include Hex code. \r\n"
- 'Nested "quotes"'
// JSON:
{
"strings": [
"Hello Dataview",
"Hello Dataview with single quotes",
"Hello Dataview with double quotes",
"Include Unicode. ☺",
"Include Hex code. \r\n",
"Nested \"quotes\""
]
}
使用 |
来保留数据的换行,每行的缩进和行尾空白都会被去掉,而额外的缩进会被保留。
lines: |
line 1
line 2
line 3
line 4
line 5
line 6
// JSON:
{
"lines": "line 1\nline 2\n\nline 3\n line 4\nline 5\nline 6\n"
}
使用 >
来表示折叠换行,只有空白行才识别为换行。
lines: >
line 1
line 2
line 3
line 4
line 5
line 6
// JSON:
{
"lines": "line 1 line 2\nline 3\n line 4\nline 5 line 6\n"
}
2. 布尔值
在 YAML 中我们统一使用 true
和 false
表示真值与假值,此外 True
/ TRUE
同样可以表示真值,同理还有 False
/ FALSE
表示假值。
boolean:
- true
- true
- TRUE
- false
- False
- FALSE
// JSON:
{
"boolean": [
true,
true,
true,
false,
false,
false
]
}
[!warning] 注意在 Obsidian 属性面板中输入布尔值时需要将【属性类型】设置为【复选框】。
3. 数字
数字分为整数、浮点数,表示方法有科学表示法,进制表示法(二进制、八进制、十进制和十六进制)。
Integers: [ 0, 0o7, 0x3A, -19 ]
Floats: [0., -0.0, .5, +12e03, -2E+05]
// JSON:
{
"Integers": [
0,
7,
58,
-19
],
"Floats": [
0,
0,
0.5,
12000,
-200000
]
}
[!warning] 注意在 Obsidian 属性面板中输入数字时需要将【属性类型】设置为【数字】。
4. 空值
null
、Null
和 ~
以及不指定值默认都为空。
nulls:
- null
- Null
-
- ~
// JSON:
{
"nulls": [
null,
null,
null,
null
]
}
5. 时间缀
YAML 支持 ISO 8601 格式的时间数据。但是在 Obsidian 中使用时只支持部分格式,建议使用 xxxx-xx-xx xx:xx:xx
这种格式来输入日期和时间,或者在属性面板中将【属性类型】设置为【日期】或【日期 & 时间】然后在日期或时间选择器中选择想要的值。
date1: 2024-04-20T11:32:00.000-04:00
date2: 2017-04-20
date3: 2017-W17-7
date4: 11:32:00.000-04:00
[!tip] 在 Obsidian 的【选项】中的【编辑器】将【文档属性】显示方式切换为【源码】模式就可以显示属性的 YAML 源码。
6. 数组
YAML 中数组有 2 种语法格式,一种是区块格式(即:- 属性值),另一种是内联格式([属性值])。多维数组则通过缩进来表示层级关系。
Inline arrays: ["a", "b", 1, 2]
Block arrays:
- a
- b
- 1
- 2
Multiple arrays:
-
- a
- b
-
- c
- d
// JSON:
{
"Inline arrays": [
"a",
"b",
1,
2
],
"Block arrays": [
"a",
"b",
1,
2
],
"Multiple arrays": [
[
"a",
"b"
],
[
"c",
"d"
]
]
}
7. 对象
对象是以键值对(key: value)的形式来表示数据。
key: value
key: { key1: value1, key2: value2 }
key:
key2: value2
key3: value3
// JSON:
{
"key": "value",
"key2": {
"key1": "value1",
"key2": "value2"
},
"key3": {
"key2": "value2",
"key3": "value3"
}
}