你可以通过属性这个功能来组织笔记。属性包含很多结构化的数据,如文本、链接、日期、复选框和数字。属性还可以与[[第三方插件]]结合使用,这些插件可以处理笔记的属性数据并完成一些有用的操作。
## 在笔记中添加属性
有几种方法向笔记中添加属性:
- 使用**添加文件属性**[[命令面板|命令]]。
- 使用**`Cmd/Ctrl+;`**[[快捷键|快捷键]]。
- 从**更多操作**菜单中选择**添加文件属性**(通过三个点图标或右键单击标签页)。
- 在笔记的开头输入`---`。
添加属性后,文件顶部会出现一行属性框,其包含两个输入框:属性_名称_和属性_值_。
对于名称,你可以选择任何你喜欢的名称。Obsidian 提供了几个内置的属性:`tags`(标签)、`cssclasses`(样式)和`aliases`(别名)。
选择属性名称后,可以为其赋值。
### 属性类型
除了名称和值外,属性还有*类型*。属性的类型描述了它可以存储的值的种类。要更改属性的类型,点击属性的图标或使用**编辑文件属性**命令。
Obsidian支持以下属性类型:
- **[[#^text-list|文本]]**
- **[[#^text-list|列表]]**
- **[[#^numbers|数字]]**
- **[[#^checkbox|复选框]]**
- **[[#^date-time|日期]]**
- **[[#^date-time|日期和时间]]**
一旦选择了属性类型,所有同一个名称的属性都被设定为该类型。
## 高级用法
### 链接
**文本**和**列表**类型的属性可以包含 URL 和[[内部链接]],使用`[[链接]]`语法即可插入。
### 搜索属性
属性有自己的[[搜索|搜索语法]],你可以将其与其他搜索项和运算符一起使用。[[搜索|查看属性搜索语法]]。
### 模板
你可以向[[模板]]中添加属性。当你将模板插入当前笔记时,模板中的所有属性都将添加到笔记中。Obsidian 还会将当前笔记中已有的属性与模板中的属性合并。
### 重命名属性
你可以通过在[[属性列表|全局属性页面]]中右键单击属性来重命名属性。
### 显示模式
你可以通过转到**设置 → 编辑器 → 笔记属性**来更改属性在笔记中的显示方式。选项包括:
- **可见**(默认)— 如果有属性,将在笔记顶部显示属性。
- **隐藏** — 隐藏属性,仍可通过[[属性列表]]在侧边栏中显示。
- **源代码** — 以纯文本YAML格式显示属性。
### 不支持的功能
在Obsidian中不支持以下功能:
- **嵌套属性** —— 若要查看嵌套属性,建议使用源代码显示。
- **批量编辑属性** —— 可以使用社区制作的工具,如 Python 脚本来实现。
- **属性中使用 Markdown 语法** —— 这是一个故意的限制,因为属性的设计初衷是人和机器均可读的信息。
## 快捷键
### 添加属性
| 动作 | 快捷键 |
|---|---|
|添加属性|`Cmd + ;`|
### 在属性之间导航
当属性被聚焦时
| 动作 | 快捷键 |
|---|---|
|聚焦到下一个属性|`下箭头`或`Tab`|
|聚焦到上一个属性|`上箭头`或`Shift+Tab`|
|跳转到编辑器|`Alt+下箭头`|
### 选择属性
| 动作 | 快捷键 |
|---|---|
|向上扩展选择|`Shift+上箭头`|
|向下扩展选择|`Shift+下箭头`|
|全部选择|`Cmd+A`|
### 编辑属性
| 动作 | 快捷键 |
|---|---|
|编辑属性名称|`左箭头`|
|编辑属性值|`右箭头`|
|聚焦属性|`Escape`|
|删除属性|`Cmd+Backspace`<br><br>如果有任何属性被选中,将删除选中的内容。|
|撤销|`Cmd+Z`|
|重做|`Cmd+Shift+Z`|
### Vim(高级)
| 动作 | 快捷键 |
|---|---|
|向下移动|`j`|
|向上移动|`k`|
|聚焦到键|`h`|
|聚焦到值|`l`|
|聚焦到值(光标在结尾处)|`A`|
|聚焦到值(光标在开头处)|`i`|
|创建新属性|`o`|
## 属性格式
属性以[YAML](https://yaml.org/)格式存储在文件的顶部。YAML是一种广泛使用的格式,可供人类和机器阅读。
属性名称与值之间用冒号和空格分隔:
```yaml
---
名称: 值
---
```
属性名称和属性值对之间的顺序并不重要,但每个属性名称在笔记内必须是唯一的。例如,你不能有多个`tags`属性。
值可以是文本、数字、true或false,甚至是值的集合(数组)。
^text-list
```yaml
---
标题: 新的希望 # 文本类型
年份: 1977
喜爱: true
演员: # 列表类型
- 马克·哈米尔
- 汉森·福特
- 凯丽·费雪
---
```
**文本**和**列表**类型属性中的内部链接必须用引号括起来。如果手动在属性中输入内部链接,Obsidian会自动添加这些引号,但在使用模板插件时要注意。
```yaml
---
链接: "[[链接]]"
链接列表:
- "[[链接]]"
- "[[链接2]]"
---
```
数字类型属性是一个数字。它可以包含小数点,但不包含运算符。
^numbers
```yaml
---
年份: 1977
圆周率: 3.14
---
```
复选框类型的属性代表了逻辑的真和假(`true` 或 `false`)。空值将默认视为 `false`。在实时预览下,这类属性会被渲染为复选框样式,而不是`true` 或 `false` 文本。
^checkbox
```yaml
---
是否喜欢: true
是否回复: false
是否可持续: # 这里没填任何值,将被视为false
```
**日期**和**日期和时间**类型属性以以下格式存储:
^date-time
```yaml
---
日期: 2020-08-21
时间: 2020-08-21T10:30:00
---
```
日期信息遵循你操作系统的默认日期和时间格式。你可以在系统偏好设置中更改它:
> [!info]- Windows
> **设置 → 时间和语言 → 语言和地区 → 区域格式 → 更改格式**
>
> ![[Windows-OS-DateTime.png#interface]]
> [!info]- Mac OS
> **系统偏好设置 → 语言与地区 → 日期格式**
>
> ![[Mac-OS-DateTime.png|450]]
启用[[日记]]插件后,日期属性还可以链接到对应日期的日记。
![[日记#^daily-notes-date]]
### JSON 语法属性
虽然我们建议使用 YAML 语法定义属性,但也可以使用[JSON 语法](https://www.json.org/)定义属性:
```json
---
{
"标签": "日记",
"发布": false
}
---
```
请注意,JSON 块将被读取、解释和保存为YAML。
## 默认属性
Obsidian附带一组默认属性:
| 属性 | 描述 |
|-|-|
| `tags` | 查看[[标签\|标签]]。 |
| `aliases` | 查看[[别名]]。 |
| `cssclasses` | 允许你使用[[CSS 代码片段]]来为单个笔记设置样式。 |
### 用于Obsidian 发布的属性
以下属性可与[[发布服务简介|Obsidian 发布服务]]一起使用:
| 属性 | 描述 |
|-|-|
| `publish` | 查看[[发布笔记与取消发布\|自动选择要发布的笔记]]。 |
| `permalink` | 查看[[发布笔记与取消发布\|永久链接]]。 |
| `description` | 查看[[设计分享链接\|描述]]。 |
| `image` | 查看[[设计分享链接\|图片]]。 |
| `cover` | 查看[[设计分享链接\|图片]]。 |
### 废弃的属性
这些属性已被 Obsidian v1.4 以后的版本弃用,请不要再使用:
| 属性 | 描述 |
|-|-|
| `tag` | 用于`tags`的弃用别名。 |
| `alias` | 用于`aliases`的弃用别名。 |
| `cssclass` | 用于`cssclasses`的弃用别名。 |