屬性讓你能夠整理筆記的相關資訊。屬性包含結構化資料,例如文字、連結、日期、核取方塊和數字。屬性也可以與[[社群外掛程式]]搭配使用,讓這些外掛能夠對你的結構化資料進行實用的操作。
## 為筆記新增屬性
有幾種方式可以為筆記新增屬性:
- 使用**新增檔案屬性**[[命令面板|命令]]。
- 使用 **`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 介紹|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 格式轉換器]]來批次變更你的保管庫。