属性允许你组织笔记的相关信息。属性包含结构化数据,如文本、链接、日期、复选框和数字。属性还可以与[[第三方插件]]结合使用,这些插件可以利用你的结构化数据实现各种有用的功能。
## 为笔记添加属性
有几种方法可以为笔记添加属性:
- 使用**增加笔记属性**[[命令面板|命令]]。
- 使用 **`Cmd/Ctrl+;`** [[快捷键]]。
- 从**更多选项**菜单(通过三点图标或右键点击标签页打开)中选择**增加笔记属性**。
- 在文件的最开头输入 `---`。
添加属性后,文件顶部会出现一行,包含两个输入项:属性的*名称*和属性的*值*。
名称可以随意选择。Obsidian 提供了几个默认属性:`tags`、`cssclasses` 和 `aliases`。
选择属性名称后,你可以为其赋值。
### 属性类型
除了名称和值之外,属性还有一个*类型*。属性的类型决定了它可以存储什么样的值以及 Obsidian 如何处理它们。要更改属性的类型,请点击属性名称旁边的类型图标并选择不同的选项。你也可以使用[[属性列表]]核心插件来管理属性类型。
Obsidian 支持以下属性类型:
- **[[#文本]]**
- **[[#列表]]**
- **[[#数字]]**
- **[[#复选框]]**
- **[[#日期]]**
- **[[#日期 & 时间]]**
- **[[#标签]]**
一旦属性类型被分配给某个属性名称,仓库中所有具有该名称的属性都将使用相同的类型。
## 高级用法
### 搜索属性
属性有自己的[[搜索|搜索语法]],可以与其他搜索词和运算符一起使用。[[搜索#搜索属性|查看属性的搜索语法]]。
### 模板
你可以在[[模板]]中添加属性。
当你将模板插入活动笔记时,模板中的所有属性都将被添加到笔记中。Obsidian 还会将笔记中已有的属性与模板中的属性进行合并。 ^templates-properties
### 重命名属性
你可以在[[属性列表|所有属性视图]]中右键点击属性来重命名它。
### 显示模式
你可以通过 **[[设置]] → 编辑器 → 笔记属性** 来更改属性在笔记中的显示方式。选项有:
- **显示**(默认)– 如果笔记有属性,则在笔记顶部显示。
- **隐藏** – 隐藏属性,仍可通过[[属性列表]]在侧边栏中显示。
- **源码** – 以纯文本 YAML 格式显示属性。
### CSS 代码片段
你可以使用 [[CSS 代码片段]]来更改特定笔记的外观。
### 暂不支持的功能
Obsidian 目前不支持以下几个功能:
- **嵌套属性**:要查看嵌套属性,我们建议使用[[编辑与预览笔记#源码模式|源码模式]]。
- **批量编辑属性**:对于[[属性列表]]之外的深度批量编辑,我们建议使用 VSCode、脚本和社区插件等批量编辑工具。
- **属性中的 Markdown**:这是一个有意的限制,因为属性旨在用于人类和机器都可读的小型原子化信息。
## 快捷键
### 添加属性
| 操作 | 快捷键 |
|---|---|
|添加新属性|`Cmd + ;`|
### 在属性之间导航
当属性处于焦点状态时
| 操作 | 快捷键 |
|---|---|
|聚焦下一个属性|`Down arrow` 或 `Tab`|
|聚焦上一个属性|`Up arrow` 或 `Shift+Tab`|
|跳转到编辑器|`Alt+Down arrow`|
### 选择属性
| 操作 | 快捷键 |
|---|---|
|向上扩展选择|`Shift+Up arrow`|
|向下扩展选择|`Shift+Down arrow`|
|选中所有元素|`Cmd+A`|
### 编辑属性
| 操作 | 快捷键 |
|---|---|
|编辑属性名称|`Left arrow`|
|编辑属性值|`Right arrow`|
|聚焦属性|`Escape`|
|删除属性|`Cmd+Backspace`<br><br>如果已选择了属性,则会删除所选内容。|
|撤销|`Cmd+Z`|
|重做|`Cmd+Shift+Z`|
### Vim(高级)
| 操作 | 快捷键 |
|---|---|
|向下移动|`j`|
|向上移动|`k`|
|聚焦键名|`h`|
|聚焦值|`l`|
|聚焦值(光标在末尾)|`A`|
|聚焦值(光标在开头)|`i`|
|创建新属性|`o`|
## 属性格式
属性以 [YAML](https://yaml.org/) 格式存储在文件顶部。YAML 是一种流行的格式,人类和计算机都可以轻松阅读。
属性名称与其值之间用冒号加空格分隔:
```yaml
---
name: value
---
```
虽然每个名称-值对的顺序无关紧要,但每个名称在笔记中必须是唯一的。例如,你不能有多个 `tags` 属性。
值可以是[[#文本|文本]]、[[#数字|数字]]、[[#复选框|复选框]]、[[#日期|日期]]、[[#日期 & 时间|日期和时间]]或[[#列表|列表]]。
### 文本
文本属性包含单行文本。Markdown 格式不会在文本属性中渲染。在文本属性中使用井号不会创建标签。
文本属性可以包含 URL 和使用 `[[Link]]` 语法的[[内部链接]]。文本属性中的[[内部链接]]必须用引号括起来。如果你手动在属性中输入内部链接,Obsidian 会自动添加引号,但在使用模板插件时请注意手动添加。
```yaml
---
title: A New Hope
link: "[[Episode IV]]"
url: https://www.example.com
---
```
### 列表
列表属性包含多个值。列表中的每个值单独占一行,前面有一个短横线(-)和一个空格。
列表值可以包含文本、数字和[[内部链接]]。在列表属性中使用[[内部链接]]时,请用引号括起来。
```yaml
---
cast:
- Mark Hamill
- Harrison Ford
- Carrie Fisher
links:
- "[[Link]]"
- "[[Link2]]"
---
```
### 数字
数字类型的属性必须始终是字面数字,不能是包含运算符的表达式。整数和小数都可以使用。
```yaml
---
year: 1977
pie: 3.14
---
```
### 复选框
复选框属性的值为 `true` 或 `false`。在实时预览中,它会显示为一个复选框。
```yaml
---
favorite: true
reply: false
last: # 不确定的值;通常被视为 false
```
### 日期
日期属性以以下格式存储:
```yaml
---
date: 2020-08-21
---
```
日期选择器遵循你操作系统的默认日期和时间格式。你可以在系统偏好设置中更改:
> [!info]- Windows
> **[[设置]] → 时间和语言 → 语言和区域 → 区域格式 → 更改格式**
>
> ![[Windows-OS-DateTime.png#interface]]
> [!info]- Mac OS
> **系统偏好设置 → 语言与地区 → 日期格式**
>
> ![[Mac-OS-DateTime.png|450]]
启用[[日记]]插件后,日期属性还将作为指向该日期对应日记的内部链接。
![[日记#^daily-notes-date]]
### 日期 & 时间
日期和时间属性同时包含日期和具体时间,以以下格式存储:
```yaml
---
time: 2020-08-21T10:30:00
---
```
与[[#日期|日期属性]]类似,日期和时间选择器遵循你操作系统的默认格式。你可以在系统偏好设置中更改。
### 标签
标签属性是一种特殊的属性类型,专用于 `tags` 属性。此属性类型不能分配给其他属性。
标签属性的格式为列表,每个标签单独占一行,前面有一个短横线(-)和一个空格。
```yaml
---
tags:
- journal
- personal
- draft
---
```
`tags` 属性是 Obsidian 的[[#默认属性]]之一。有关在 Obsidian 中使用标签的更多信息,请参阅[[标签]]。
### JSON 属性
虽然我们建议使用 YAML 来定义属性,但你也可以使用 [JSON](https://www.json.org/) 来定义属性:
```json
---
{
"tags": ["journal"],
"publish": false
}
---
```
请注意,JSON 块将被读取、解析并保存为 YAML。
## 默认属性
Obsidian 自带一组默认属性:
| 属性 | 类型 | 描述 |
| ------------ | ---- | ------------------------------------------------------------ |
| `tags` | 列表 | 参见[[编辑与格式化/标签\|标签]]。 |
| `aliases` | 列表 | 参见[[别名]]。 |
| `cssclasses` | 列表 | 允许你使用 [[CSS 代码片段]]为单个笔记设置样式。 |
### Obsidian Publish 的属性
以下默认属性可与 [[发布服务简介|Obsidian Publish]] 一起使用:
| 属性 | 描述 |
| ------------- | ---------------------------------------------------------------------------------------------------------- |
| `publish` | 参见[[发布笔记与取消发布#自动选择要发布的笔记\|自动选择要发布的笔记]]。 |
| `permalink` | 参见[[永久链接\|永久链接]]。 |
| `description` | 参见[[自定义分享链接#Description\|Description]]。 |
| `image` | 参见[[自定义分享链接#Image\|Image]]。 |
| `cover` | 参见[[自定义分享链接#Image\|Image]]。 |
### 已弃用的属性
这些属性在 Obsidian 1.4 中已弃用,应替换为现代等效属性。Obsidian 1.9 中不再将其作为[[#默认属性]]提供支持。
| 属性 | 描述 |
|-|-|
| `tag` | `tags` 的已弃用别名。 |
| `alias` | `aliases` 的已弃用别名。 |
| `cssclass` | `cssclasses` 的已弃用别名。 |
> [!tip] 如果你需要将仓库中的文件转换为[[#默认属性]]格式,可以使用 [[Markdown 格式转换器]]来批量更改你的仓库。