Obsidian 属性与标签完整使用教程

许多人在使用 Obsidian 一段时间后,会开始意识到笔记数量增长带来的管理难题:想找某篇读书笔记,却要在数百个文件里逐一翻找;想筛选出所有状态为 ” 待修改 ” 的文章草稿,却发现这些信息只是散落在正文某个角落的普通文字,根本无从检索。这些困惑几乎都指向同一个解法:属性(Properties)与标签(Tags)。

属性允许你在笔记中存储结构化的元数据——创建时间、状态标记、关联项目、评分、来源链接——并借助 Dataview 社区插件或 Obsidian 1.9 引入的官方核心插件数据库(Bases)将这些数据转化为动态的笔记数据库视图。标签则是更轻量的分类工具,用一个 # 符号就能为笔记打上主题标记,并在全库范围内快速检索。两者定位不同,却互为补充,共同构成了 Obsidian 知识管理体系中不可或缺的组织层。

本文以 Obsidian 的属性与标签功能为主线,覆盖属性的添加方式、全部类型的详细说明、YAML 格式规范、默认属性介绍、高级用法(搜索、模板联动、批量重命名),以及标签的创建规则、嵌套标签的使用、标签格式规范,并在文末补充快捷键速查、常见问题排查,以及与 Dataview、Bases 数据库核心插件的联动进阶建议,力求帮助你把属性与标签真正用起来,而不只是了解它们的存在。


目录

  1. 属性是什么
  2. 为笔记添加属性
  3. 属性类型详解
  4. 属性的 YAML 格式规范
  5. Obsidian 默认属性
  6. 属性的高级用法
  7. 属性的显示模式与界面设置
  8. 属性相关快捷键速查
  9. 标签是什么
  10. 为笔记添加标签
  11. 使用标签查找笔记
  12. 嵌套标签:构建标签层级
  13. 标签格式规范
  14. 常见问题与排查
  15. 进阶技巧与使用建议

1. 属性是什么

属性(Properties)是存储在笔记顶部的结构化元数据,以 YAML 格式呈现,由一对 --- 分隔线包裹。你可以把属性理解为每篇笔记附带的 ” 信息卡片 “——记录这篇笔记的创建日期、所属项目、当前状态、评级、参考来源等一切你认为有价值的附加信息。

属性的核心价值在于结构化。普通正文中的信息只能靠全文搜索来找,但属性中的数据可以被精确查询、过滤和排序。一旦养成在每篇笔记中填写属性的习惯,配合 Dataview 社区插件或 Obsidian 官方的 Bases 数据库核心插件,你就能做到:列出所有状态为 ” 草稿 ” 的文章、筛选出本月新建的所有笔记、统计各个项目下的笔记数量——这些在普通搜索中几乎无法实现的操作,借助属性都能轻松完成。

属性也可以与第三方插件结合使用。许多社区插件正是依赖属性中的结构化数据来实现其核心功能,例如 Dataview 用属性构建动态数据库查询,Tasks 用属性字段追踪任务的截止日期和优先级,Templater 用属性在模板中传递变量。Obsidian 自 1.9 版本起,还内置了 Bases 数据库核心插件,无需安装任何第三方依赖,即可通过图形化界面直接查询、展示和管理属性数据。理解属性的工作原理,是用好这一切的前提。


2. 为笔记添加属性

Obsidian 提供了多种添加属性的入口,可以根据当前操作习惯灵活选择:

  • 使用增加笔记属性命令:打开命令面板(Cmd/Ctrl+P),搜索 ” 增加笔记属性 ” 并执行。
  • 使用快捷键 Cmd/Ctrl+;:在编辑笔记时按下此组合键,直接呼出属性输入行。
  • 更多选项菜单进入:点击标签页右上角的三点图标,或右键点击标签页,在弹出菜单中选择 ” 增加笔记属性 ”。
  • 手动输入 ---:在文件最开头的第一行输入三条连字符,Obsidian 会自动识别并展开属性区域。

添加属性后,文件顶部会出现一个专用的属性面板区域,每行包含两个输入项:属性的名称和属性的。名称可以自由定义,Obsidian 会记住你曾经使用过的属性名称,并在下次输入时提供自动补全。

💡 说明 属性块必须位于文件的绝对开头,其上方不能有任何内容,包括空行。一旦 --- 之前存在哪怕一行空白行,Obsidian 就无法正确识别属性块,整个块会被当作普通的分隔线或文字处理。


3. 属性类型详解

属性除了名称和值之外,还有一个重要的维度:类型。类型决定了属性能存储什么样的数据,以及 Obsidian 如何在界面上呈现和处理它。要更改属性的类型,点击属性名称旁边的类型图标,从下拉菜单中选择合适的选项即可。也可以通过「属性列表」核心插件,在侧边栏中统一管理全库的属性类型。

Obsidian 目前支持以下七种属性类型:

3.1 文本

文本类型是最基础的属性类型,用于存储单行字符串内容。Markdown 格式(如加粗、斜体)在文本属性中不会被渲染,井号 # 在文本属性中也不会被识别为标签,仅作普通字符处理。

文本属性可以包含网页 URL,也支持使用 [[双括号]] 语法的 Obsidian 内部链接。需要注意的是,属性中的内部链接必须用英文引号包裹,否则 Obsidian 无法正确解析。通过属性面板图形界面输入内部链接时,Obsidian 会自动添加引号;但如果你直接在源码模式中手动编写 YAML,需要自行添加。

---
书名: 如何阅读一本书
来源链接: https://www.example.com/book-review
关联笔记: "[[阅读方法论]]"
---

3.2 列表

列表类型用于存储多个值,适合需要填写多项内容的属性,例如作者列表、关联标签、参考文献等。列表中的每个值单独占一行,前面以短横线加空格(- )开头。

列表中的值同样支持文本、数字和内部链接,内部链接在列表属性中也需要用引号包裹。

---
参考书目:
  - 《思考,快与慢》
  - 《刻意练习》
  - 《深度工作》
相关笔记:
  - "[[学习方法综述]]"
  - "[[专注力训练]]"
---

3.3 数字

数字类型的属性值只能是字面数字,不支持包含运算符的表达式,整数和小数均可使用。常见用途包括评分、章节编号、阅读进度百分比等。

---
评分: 4.5
阅读进度: 78
章节数: 12
---

3.4 复选框

复选框类型的属性值只有两种:true(已勾选)和 false(未勾选)。在实时预览和阅读视图中,它会以一个可点击的复选框呈现,适合用于标记二元状态,例如 ” 是否已发布 ”、” 是否已归档 ”、” 是否需要复习 ” 等。

---
已发布: true
需要复习: false
已归档: false
---

当复选框属性的值为空时(不填写任何内容),Obsidian 通常将其视为 false

3.5 日期

日期类型属性以 YYYY-MM-DD 格式存储,适合记录创建时间、截止日期、最后修改时间等时间节点信息。在 Obsidian 图形界面中,日期属性会呈现为一个日期选择器,点击后弹出日历控件供选择,无需手动输入格式。

日期选择器遵循操作系统的默认日期格式,可以在系统偏好设置中修改显示格式(Windows 路径:设置 → 时间和语言 → 语言和区域 → 区域格式;macOS 路径:系统偏好设置 → 语言与地区 → 日期格式)。

在启用「日记」核心插件的情况下,日期属性中的日期值会自动渲染为指向对应日记文件的内部链接,点击即可跳转到当天的日记页面,是连接结构化数据与日记工作流的便捷方式。

---
创建日期: 2026-05-03
截止日期: 2026-06-01
最后复习: 2026-04-20
---

3.6 日期与时间

日期与时间类型在日期的基础上,增加了具体时刻的记录,格式为 YYYY-MM-DDTHH:mm,适合需要精确到分钟的场景,例如会议记录、事件日志、版本更新时间戳等。

与日期属性类似,日期与时间选择器同样遵循操作系统的默认格式,可在系统设置中调整。

---
会议时间: 2026-05-03T14:30
发布时间: 2026-05-01T09:00
---

3.7 标签(属性中的标签)

标签类型是专门为 tags 属性保留的特殊类型,不能分配给其他属性名称。它本质上是一个列表,每个标签值单独占一行,格式与列表类型相同。

---
tags:
  - 读书笔记
  - 认知科学
  - 待整理
---

通过属性中的 tags 字段添加的标签,与在正文中用 # 写的行内标签效果完全相同——两者都会出现在标签列表面板中,都可以用于搜索和筛选,没有优先级之分。选择哪种方式纯粹是个人习惯问题:属性中的标签更集中,行内标签更灵活。

⚠️ 注意 一旦 Obsidian 将某个属性名称关联了特定类型,全库中所有使用该属性名称的笔记都会共用这个类型。例如,将 评分 设置为数字类型后,库中所有笔记的 评分 属性都只能填数字,无法在某几篇笔记中将其改为文本类型。这一机制意味着属性命名需要提前规划,避免同名属性在不同笔记中承担不同语义。


4. 属性的 YAML 格式规范

属性以 YAML 格式存储在文件的顶部,以两行 --- 为边界标记。YAML 是一种人类可读性极高的数据格式,掌握其基本规则,有助于在源码模式下直接编写和修改属性,也有助于理解模板文件中的属性逻辑。

属性的基本结构是名称与值之间以冒号加一个英文空格分隔:

---
属性名称: 属性值
---

虽然每对名称 - 值的排列顺序无关紧要,但同一笔记中每个属性名称必须唯一——你不能在同一个属性块里出现两个 tags 或两个 status,重复的属性名称只有一个会被 Obsidian 读取,另一个会被忽略。

各类型的 YAML 写法示意:

---
# 文本类型
书名: 深度工作
 
# 列表类型(多行写法)
作者:
  - 卡尔·纽波特
 
# 数字类型
评分: 4
 
# 复选框类型
已读完: true
 
# 日期类型
阅读完成日期: 2026-04-15
 
# 日期与时间类型
记录时间: 2026-05-03T21:00
 
# 标签
tags:
  - 效率
  - 职场
---

💡 说明(JSON 属性的支持) Obsidian 也接受以 JSON 格式定义的属性块,用法是将整个属性内容写成标准 JSON 对象:

---
{
  "tags": ["效率", "职场"],
  "已读完": true
}
---

Obsidian 在读取并保存 JSON 格式的属性后,会自动将其转换为 YAML 格式存储。日常使用中推荐直接使用 YAML,JSON 属性主要在与外部工具对接时作为过渡格式使用。


5. Obsidian 默认属性

Obsidian 内置了一组开箱即用的默认属性,这些属性名称在 Obsidian 中具有特殊含义,相关功能会自动识别并处理它们:

属性类型用途说明
tags列表为笔记添加标签,与行内标签 # 功能等同。
aliases列表为笔记设置别名,可以通过别名建立链接或搜索到此笔记。
cssclasses列表为单篇笔记应用特定的 CSS 代码片段样式类,实现个性化外观。

除以上三个核心默认属性外,如果你使用 Obsidian Publish 服务,以下属性也具有特定功能含义:

属性用途说明
publish控制笔记是否自动发布到 Publish 站点。
permalink为发布的笔记自定义永久链接路径。
description设置笔记在社交分享时显示的描述文字。
image设置社交分享时的预览图片 URL。
coverimage 功能类似,用于封面图片设置。

💡 说明 aliases 别名属性是一个非常实用但常被忽视的功能。当一个概念有多种常见叫法时,可以用 aliases 将所有叫法都登记在同一篇笔记下。例如,一篇关于 “GTD 工作法 ” 的笔记,可以同时设置别名 Getting Things Done时间管理框架。此后在任何笔记中输入这些别名,Obsidian 都会在链接补全列表中显示这篇笔记,极大降低了因笔记命名不统一而导致的链接断裂问题。


6. 属性的高级用法

6.1 通过属性搜索笔记

属性拥有专属的搜索语法,可以与普通搜索词搭配使用,实现更精确的笔记筛选。在搜索面板中,属性搜索的格式如下:

[属性名称]:[属性值]

例如,要搜索所有 status 属性值为 草稿 的笔记,可以输入:

[status]:草稿

属性搜索可以与其他条件组合,例如在特定文件夹中搜索草稿状态的笔记:

path:写作/ [status]:草稿

想了解属性搜索的完整语法规则,可以打开搜索面板后点击「帮助」图标,或查阅 Obsidian 官方文档中搜索语法的相关章节。

6.2 在模板中使用属性

属性可以直接写入 Obsidian 模板文件。当你通过「模板」核心插件将模板插入活动笔记时,模板中定义的所有属性都会被添加到当前笔记中。如果笔记已经存在部分属性,Obsidian 会将模板属性与笔记现有属性进行合并,不会覆盖同名属性中已有的内容。

一个典型的读书笔记模板,属性区域可以设计如下:

---
书名: 
作者: 
出版年份: 
评分: 
阅读状态: 进行中
tags:
  - 读书笔记
---

💡 说明(搭配 Templater 插件) 如果你使用的是 Templater 社区插件(而非内置模板插件),可以在属性中使用 Templater 的变量语法,让模板在插入时自动填入动态内容,例如:

---
创建日期: <% tp.date.now("YYYY-MM-DD") %>
笔记标题: <% tp.file.title %>
---

插入模板时,Templater 会自动将变量替换为当前日期和文件名。这种用法能大幅减少属性填写的手动工作量,是许多重度用户的核心工作流之一。

6.3 重命名属性

如果你想修改某个属性的名称(例如将 status 改为 笔记状态),可以通过「所有属性视图」(All Properties)来批量重命名。

操作步骤:

  1. 在左侧边栏找到并打开「所有属性」视图(如果未显示,可以通过命令面板搜索 ” 属性列表 ” 来打开)。
  2. 在属性列表中找到要重命名的属性名称,右键点击它。
  3. 在弹出的菜单中选择 ” 重命名 “,输入新名称并确认。

Obsidian 会自动将全库中所有使用该属性名称的笔记中的属性名称同步更新,无需逐个手动修改。这是管理库中属性命名一致性的最可靠方式。

⚠️ 注意(暂不支持的功能) Obsidian 目前尚不支持以下功能,在规划工作流时需要留意:

  • 嵌套属性:YAML 支持嵌套结构,但 Obsidian 的属性面板暂时无法以图形化方式编辑嵌套属性。如需使用嵌套属性,可以切换到源码模式直接编辑 YAML,但相关插件对嵌套属性的支持程度参差不齐。
  • 批量编辑属性值:目前没有内置的批量修改属性内容的工具。如需在多个笔记中批量修改某个属性的值,建议使用 VSCode 的多文件查找替换功能,或借助社区插件来实现。
  • 属性中的 Markdown 格式:属性值不渲染 Markdown,这是有意为之的设计——属性的核心定位是原子化的结构化数据,而非富文本内容。如需存储带格式的长文本,应放在笔记正文中,而非属性字段中。

7. 属性的显示模式与界面设置

Obsidian 提供三种属性显示模式,可以根据自己的使用习惯进行调整。路径为:设置 → 编辑器 → 笔记属性

显示(默认模式):如果笔记含有属性,属性面板会显示在笔记顶部,以友好的图形界面呈现每个属性的名称和值,并根据属性类型显示相应的输入控件(日期选择器、复选框等)。

隐藏:属性面板在编辑区不显示,笔记正文直接从内容开始。属性数据依然存在于文件中,可以通过侧边栏的「属性列表」插件查看和编辑。这个模式适合不希望属性占用编辑区视觉空间的用户。

源码:以纯文本 YAML 格式直接显示属性内容,适合习惯手动编写 YAML 的用户,或需要调试属性格式问题时使用。

💡 说明 无论选择哪种显示模式,属性数据在文件中的存储格式都是相同的 YAML 文本。显示模式只影响 Obsidian 如何在界面中呈现属性,不影响文件的实际内容。切换显示模式后,使用「属性列表」核心插件(可在侧边栏固定显示)仍然可以正常访问和编辑所有属性。


8. 属性相关快捷键速查

属性面板拥有一套专用的键盘导航体系,熟悉之后可以完全脱离鼠标操作属性区域。

8.1 添加属性

操作快捷键
添加新属性Cmd/Ctrl + ;

8.2 在属性之间导航

以下快捷键在属性面板处于焦点状态时生效:

操作快捷键
聚焦下一个属性 方向键 或 Tab
聚焦上一个属性 方向键 或 Shift+Tab
跳转到正文编辑器Alt+↓ 方向键

8.3 选择属性

操作快捷键
向上扩展选择范围Shift+↑
向下扩展选择范围Shift+↓
全选属性Cmd/Ctrl+A

8.4 编辑属性

操作快捷键
进入属性名称编辑 方向键
进入属性值编辑 方向键
退出编辑、聚焦属性行Escape
删除已选属性Cmd/Ctrl+Backspace
撤销Cmd/Ctrl+Z
重做Cmd/Ctrl+Shift+Z

8.5 Vim 模式(高级)

如果你在 Obsidian 中启用了 Vim 键位模式,属性面板也支持 Vim 风格的导航:

操作快捷键
向下移动j
向上移动k
聚焦属性名称h
聚焦属性值l
进入值编辑(光标在末尾)A
进入值编辑(光标在开头)i
在当前属性下方新建属性o

9. 标签是什么

标签(Tags)是一种更轻量的笔记分类工具。你只需要在笔记正文中输入 # 加上关键词,一个标签就创建完成了。标签不需要事先定义,不需要指定类型,用完即走——这是它区别于属性的最大特点。

那么,属性和标签应该如何选择?一个简单的判断依据是:如果某个信息需要存储具体的值(日期、数字、文字内容),用属性;如果只需要打一个 ” 归类标记 “,用标签。

举个例子:一篇读书笔记,你可能会用属性记录书名、作者、评分、阅读状态,同时用标签打上 #认知科学#推荐阅读 这样的分类标记。属性承载的是这篇笔记的具体信息,标签承载的是这篇笔记在知识体系中的归属。

当然,这个边界并非绝对。有时候状态标记(如 进行中 / 已完成)既可以用属性存储,也可以用标签实现。选哪种方式,取决于你是否需要在 Dataview 或 Bases 数据库中对这个字段进行精确查询——如果需要,属性更适合;如果只是想在标签面板里看到分类,标签就够了。


10. 为笔记添加标签

在 Obsidian 中添加标签有两种方式,效果完全等同,可以混合使用。

方式一:行内标签

直接在笔记正文的任意位置输入 # 加上标签名,标签就会立即生效。例如,在一篇关于冥想的笔记结尾写上:

本文整理了基础的冥想入门方法,适合零基础读者参考。

#冥想 #身心健康 #日常习惯

方式二:属性中的标签

在笔记顶部的属性区域,通过 tags 属性添加。在图形界面中,点击 tags 属性的值区域,即可逐个输入标签;在 YAML 源码中,格式如下:

---
tags:
  - 冥想
  - 身心健康
  - 日常习惯
---

💡 说明 推荐在属性中统一管理标签,而不是将标签散布在正文各处。原因有两个:第一,属性中的标签集中在文件顶部,一眼可以看到这篇笔记的所有分类标记;第二,在使用搜索功能、Dataview 或 Bases 数据库核心插件时,属性中的标签与行内标签的效果完全相同,不存在任何功能上的差异,因此集中管理只有好处,没有代价。


11. 使用标签查找笔记

Obsidian 提供了多种通过标签找到笔记的方式:

通过搜索功能:在搜索面板中使用 tag: 搜索符,后接标签名称(带或不带 # 均可)。例如,搜索所有带有 #项目管理 标签的笔记:

tag:#项目管理

或者等效的写法:

tag:项目管理

标签搜索可以与其他搜索条件组合,例如在特定文件夹中搜索带有特定标签的笔记:

path:工作/ tag:项目管理

通过点击笔记中的标签:在阅读视图或实时预览模式下,点击笔记正文中的标签(以 # 开头的高亮词),Obsidian 会自动打开搜索面板并展示所有含有该标签的笔记。

通过标签列表插件:「标签列表」(Tags)是 Obsidian 内置的核心插件,可以在左侧边栏展示全库所有标签及其使用频次。在命令面板中执行「标签列表:显示标签列表」,或在侧边栏图标中点击标签列表图标,即可打开。点击任意标签,会直接跳转到显示所有包含该标签笔记的搜索结果。


12. 嵌套标签:构建标签层级

当标签数量增多,简单的平铺结构可能难以管理。嵌套标签允许你用斜杠 / 在标签名中创建层级关系,让分类体系更加清晰有序。

例如,你正在构建一个以 ” 学科 ” 为顶层分类的标签体系:

#学科/心理学
#学科/神经科学
#学科/哲学/认识论
#学科/哲学/伦理学

嵌套标签的搜索行为值得特别说明:搜索 tag:学科 会匹配 #学科 本身,同时也会匹配所有以 #学科/ 开头的子标签——包括 #学科/心理学#学科/哲学/认识论 等所有层级的子标签。这意味着你可以用父标签做宽泛的查询,也可以用子标签做精确筛选,灵活性非常高。

在「标签列表」面板中,嵌套标签会以树形结构显示,父标签可以展开或折叠,浏览起来比平铺列表更直观。

如果你使用「数据库」(Bases)核心插件,嵌套标签的筛选行为有一个重要细节需要了解:在 Bases 的筛选条件中,应使用 file.hasTag("标签名") 来筛选标签,这个函数与 Obsidian 搜索的行为保持一致——file.hasTag("学科") 会同时匹配带有 #学科 及其所有子标签(如 #学科/心理学#学科/哲学/认识论)的笔记。

⚠️ 注意(Bases 中的标签筛选方式) 在 Bases 中,tags.contains("学科")file.hasTag("学科") 的行为不同。前者执行的是数组精确匹配,只会匹配标签值中确实包含字符串 "学科" 的项,不会自动匹配 #学科/心理学 这样的子标签;后者才是支持嵌套标签层级匹配的正确函数。如果你发现 Bases 筛选标签时遗漏了带子标签的笔记,请检查是否使用了 file.hasTag() 而非 tags.contains()

💡 说明(嵌套标签的设计建议) 嵌套标签的层级不宜过深,一般建议不超过三层。层级过深会导致标签名过长、难以输入,也会让标签列表的树形结构变得难以浏览。大多数场景下,两层嵌套(父标签/子标签)已经足够满足分类需求。如果你发现某个子标签需要进一步细分,可以考虑是否应该改用属性来存储更精细的分类信息。


13. 标签格式规范

Obsidian 对标签名称有明确的字符限制,了解这些规则可以避免意外创建无效标签。

可以使用的字符

  • 字母(中英文均可)
  • 数字
  • 下划线 _
  • 连字符 -
  • 正斜杠 /(用于创建嵌套标签)

不能使用的字符:空格、以及其他标点符号和特殊字符。

关于纯数字标签:标签必须至少包含一个非数字字符。例如,#2024 不是有效标签,但 #y2024#阅读2024 是有效标签。

关于大小写:标签不区分大小写,#ProductDesign#productdesign 会被识别为同一个标签。在「标签视图」中,标签会以它最早被使用时的大小写形式显示。例如,先在某篇笔记中使用了 #productdesign,后来在另一篇笔记中使用了 #ProductDesign,那么在标签面板中会以 #productdesign(首次出现的形式)展示,两者的笔记都会被收录其中。

由于标签不能包含空格,多个单词组成的标签可以选择以下几种命名风格:

风格示例
驼峰命名#productDesign
帕斯卡命名#ProductDesign
下划线分隔#product_design
连字符分隔#product-design

推荐做法 在开始使用标签之前,建议先为自己的标签命名风格制定一个简单的规范,并在整个知识库中保持一致。混用多种命名风格(一半用下划线、一半用连字符)虽然在功能上没有问题,但会导致标签列表看起来杂乱,也增加输入时猜测正确写法的心智负担。


14. 常见问题与排查

14.1 属性块没有被识别,显示为普通文字

最常见的原因是 --- 之前存在空行。属性块必须从文件的第一行开始,第一行是开启 ---,其后是属性内容,再以 --- 结束。如果第一行是空行,Obsidian 就无法将其识别为属性块。

另一个常见原因是 --- 的字符数不够。必须是连续三条英文连字符,写成 --(两条)或混入了全角字符都不会生效。

14.2 属性值显示异常或无法保存

如果属性值包含冒号 :、井号 #、方括号 [] 等 YAML 特殊字符,必须将整个值用英文引号括起来,否则 YAML 解析会出错。例如:

---
标题: "项目A:阶段一总结"
备注: "包含 #重要 标记的内容"
---

如果属性值是纯数字但希望作为文本处理(例如邮政编码 010010),同样需要用引号包裹,否则 YAML 会将其解析为数字并去掉前导零。

14.3 内部链接属性没有出现在反向链接中

属性中的内部链接([[双括号]] 格式)会被 Obsidian 识别,但需要注意:属性中的内部链接必须用英文引号包裹,格式为 "[[目标笔记]]"。没有加引号的内部链接可能无法被正确解析,因此不会出现在目标笔记的反向链接面板中。

在图形界面的属性面板中选择内部链接时,Obsidian 会自动添加引号。但如果你在源码模式中手动编写,记得自行添加。

14.4 标签在搜索结果中找不到某些笔记

首先确认这些笔记中的标签拼写与搜索词完全一致(标签搜索不区分大小写,但不会做模糊匹配)。其次,如果标签写在了 YAML 属性块中,检查 tags 字段的格式是否正确——每个标签值独占一行并以 - 开头,不能写成逗号分隔的行内列表格式(YAML 行内列表 [值1, 值2] 在某些版本的 Obsidian 中对 tags 字段支持不稳定)。

14.5 嵌套标签的父标签没有出现在标签列表中

嵌套标签的父标签(如 #学科)只有在某篇笔记中被单独使用时,才会作为独立项出现在标签列表中。如果你只使用了子标签(如 #学科/心理学)而没有单独使用过 #学科,那么在标签列表中 学科 只会作为父级分组出现,而不会作为独立的标签条目显示。这是正常行为,不是 bug。

14.6 更改属性类型后,旧数据显示异常

如果将某个属性的类型从文本改为数字,而原有的属性值包含非数字内容,Obsidian 可能无法正确显示或处理这些值。建议在更改属性类型之前,先在「属性列表」中确认全库中该属性的所有现有值,手动清理与新类型不兼容的内容,再执行类型变更。


15. 进阶技巧与使用建议

15.1 用 Dataview 查询属性数据

Obsidian 的属性功能与 Dataview 社区插件配合,可以发挥出远超单独使用时的价值。安装 Dataview 后,你可以用类似 SQL 的语言查询全库的属性数据,例如:

列出所有状态为 ” 进行中 ” 且带有 #写作 标签的笔记,并按创建日期倒序排列:

```dataview
TABLE 创建日期, 评分
FROM #写作
WHERE 状态 = "进行中"
SORT 创建日期 DESC
```

这类动态查询的前提是属性名称在全库中保持一致,且属性值的格式规范统一。因此,在开始大规模使用属性之前,花一些时间设计属性命名规范,会为后期的 Dataview 使用节省大量排查时间。

15.2 用 Bases 数据库核心插件可视化管理属性

如果你觉得 Dataview 的查询语法有一定学习门槛,Obsidian 自 1.9.0 版本起内置了一个更易上手的选择:Bases 数据库核心插件。它不需要编写任何查询代码,通过类似电子表格的图形界面,就能实现对属性数据的筛选、排序和多视图展示。作为官方核心插件,Bases 由 Obsidian 团队直接维护,无需担心因第三方插件停止更新而导致的兼容性问题。

启用方式:进入 设置 → 核心插件,找到「数据库」并开启。建议同时确认「属性列表」也处于启用状态。

创建数据库文件:数据库以 .base 为扩展名存储,是一种独立的文件类型(与 .md 笔记文件并列)。创建方式有以下几种:

  • 在命令面板(Cmd/Ctrl+P)中搜索「新建数据库」,直接创建;
  • 在文件浏览器中右键点击某个文件夹,选择「新建数据库」;
  • 如需将数据库嵌入到现有笔记中,在命令面板搜索「插入数据库」即可。

Bases 的核心概念

数据库默认列出全库所有文件。要让它只展示你想要的内容,需要配置两个核心要素:

筛选(Filters):点击界面右上角的「筛选」按钮,可以添加筛选条件,决定哪些笔记出现在当前视图中。筛选条件支持按属性值、标签、文件夹、文件扩展名等多种维度组合,也支持 andornot 逻辑运算,以及内置函数(如 today()file.hasTag())。

属性列(Properties):点击界面右上角的「属性」按钮,可以选择在表格中显示哪些属性列。可选的属性来自两个来源:一是 Obsidian 的系统属性(笔记名称、文件大小、所在文件夹、创建时间等),二是你在全库中自定义的所有属性字段——即便只有一篇笔记使用了某个属性,它也会出现在这个列表中。

视图(Views):目前 Bases 支持表格卡片列表三种视图布局。同一个 .base 文件可以创建多个视图,每个视图使用独立的筛选条件和属性列配置,互不干扰。例如,一个 ” 阅读管理 ” 数据库可以同时包含「待读书单」(筛选阅读状态为 ” 未读 “)和「已读书目」(筛选阅读状态为 ” 已读 “)两个视图,在同一文件内切换。

在其他笔记中嵌入数据库视图:数据库视图可以像普通笔记一样被嵌入引用。语法如下:

![[读书管理.base#待读书单|待读书单]]

其中 读书管理.base 是数据库文件名,#待读书单 是视图名称。这样就能在日记、项目页面等任意笔记中直接展示该视图的当前内容,无需重复配置。

💡 说明(Bases 与 Dataview 如何选择) Bases 的优势在于零代码官方维护,上手几乎没有门槛;Dataview 的优势在于高度灵活,支持 DataviewJS 编写复杂逻辑,可以实现 Bases 目前尚不支持的高级查询场景。两者并不互斥——可以用 Bases 处理日常的属性浏览和筛选,用 Dataview 实现特定的高阶查询需求。

⚠️ 注意(版本要求) Bases 核心插件需要 Obsidian 1.9.0 或更高版本。如果你在核心插件列表中找不到「数据库」选项,请先将 Obsidian 升级到最新版本。

15.3 用模板统一属性结构

手动为每篇新笔记填写属性,既繁琐又容易遗漏。更好的做法是为不同类型的笔记创建对应的模板,在模板中预设好属性结构,新建笔记时直接插入模板,所有属性字段一次到位。

一个简单的文献笔记模板示例:

---
文献标题: 
作者: 
发表年份: 
文献类型: 期刊论文
阅读状态: 未读
相关项目: 
tags:
  - 文献笔记
---

搭配 Templater 插件使用时,还可以让模板在插入时自动填入当前日期、文件名等动态信息,实现零手动输入的属性初始化。

15.4 定期审查和清理标签

标签的轻量特性是双刃剑——它让你能随手打标签,也容易导致标签数量失控、命名混乱。建议每隔一段时间(比如每个季度)打开标签列表面板,对全库标签做一次审查:合并语义相同的标签、删除已不再使用的标签、统一命名风格不一致的标签。

Obsidian 目前没有内置的批量标签重命名工具。合并或重命名标签需要借助全文搜索替换(可以使用 VSCode 打开整个库目录)或社区插件来完成。这也是保持标签体系整洁需要付出的维护成本之一,在设计初期规范命名,可以大幅减少后期清理的工作量。

15.5 属性与标签的协作关系

属性和标签并非竞争关系,最佳实践是将两者配合使用,各司其职:

属性存储结构化的元数据——那些有明确字段名和具体值的信息:创建时间、状态、评分、关联项目、来源 URL、阅读进度。

标签标记主题归属和跨库的横向联系——那些不需要具体值、只需要一个 ” 归类标记 ” 的信息:#读书笔记#待整理#灵感#认知科学

当你不确定某个信息该用属性还是标签时,问自己一个问题:” 我将来会需要按这个信息的具体值来筛选笔记吗?” 如果会,用属性;如果只是用来归类浏览,用标签。

15.6 与 Obsidian Publish 的联动

如果你使用 Obsidian Publish 对外发布笔记,属性的作用还会延伸到 SEO 和社交分享层面。description 属性控制页面的 meta description,image 属性控制社交媒体分享时的预览图,permalink 属性让你可以为页面自定义 URL 路径,而不受文件名限制。

合理利用这些 Publish 专属属性,可以在不修改笔记正文的情况下,精细控制每篇发布文章的对外呈现效果。

15.7 版本与平台说明

属性的图形化编辑面板(属性面板)于 Obsidian 1.4.0 版本引入。如果你使用的是更早的版本,属性区域会以 YAML 源码模式显示,没有图形化控件,建议升级到最新版本以获得完整的属性体验。

Bases 数据库核心插件于 Obsidian 1.9.0 版本引入,并在 1.9.10 版本后面向所有用户正式开放(早期版本需要 Catalyst 内测许可才能使用)。如果你升级到 1.9.10 或更高版本后仍未看到 Bases,请前往 设置 → 核心插件 手动开启。

💡 说明(Obsidian 1.9 属性命名变更) Obsidian 1.9 版本对部分默认属性的写法做了更新:旧版中使用的单数形式 tagaliascssclass 在新版中已被废弃,统一改为复数形式 tagsaliasescssclasses,且这三个属性的值均应以列表格式存储。如果你的库中还存在使用旧写法的笔记,建议逐步更新为新格式,以确保与当前版本的 Obsidian 及 Bases 功能完全兼容。

属性与标签功能在 Obsidian 桌面端(Windows、macOS、Linux)和移动端(iOS、Android)均可使用。移动端的属性面板在交互上与桌面端基本一致,但受屏幕尺寸限制,部分操作(如多选属性)可能不如桌面端方便。标签的行内输入和属性 tags 字段在移动端均完整支持。Bases 数据库功能在移动端同样可用,但由于表格视图在小屏幕上的交互体验有限,复杂的数据库管理操作更适合在桌面端完成。