本文从 Obsidian 撰写发布
markdown
Obsidian 笔记属性(Properties)完全教程
本文档整理自一次完整的 Obsidian 属性使用问答对话,涵盖从入门到进阶的所有核心知识点。
📖 目录
- [什么是笔记属性] (#1-什么是笔记属性)
- [属性区的正确写法] (#2-属性区的正确写法)
- [属性的类型与格式] (#3-属性的类型与格式)
- [属性与正文的区别] (#4-属性与正文的区别)
- [扁平结构与嵌套结构] (#5-扁平结构与嵌套结构)
- [显示模式设置] (#6-显示模式设置)
- [常见问题与排查] (#7-常见问题与排查)
- [属性与 Dataview 配合] (#8-属性与-dataview-配合)
- [模板中的属性应用] (#9-模板中的属性应用)
- [总结] (#10-总结)
1. 什么是笔记属性
属性(Properties) 是 Obsidian 为笔记添加元数据的功能。它写在笔记最开头,用 --- 包裹,采用 YAML 格式。
基本示例
---
title: 如何高效阅读
author: 张三
tags: [个人成长, 阅读方法]
rating: 8.5
is_finished: true
date_finished: 2026-07-15
---核心价值
属性的核心价值在于它的类型系统。通过为不同属性指定类型,Obsidian 可以识别这些数据,从而实现精准的筛选、查询和展示。
2. 属性区的正确写法
2.1 最基本的规则
属性区必须在笔记的第一行第一列,前面不能有任何空格或空行。
✅ 正确写法:
---
标题: "我的笔记"
日期: "2026-08-03"
---❌ 错误写法(前面有空行或空格):
---
标题: "我的笔记"
日期: "2026-08-03"
---或者:
---
标题: "我的笔记"
日期: "2026-08-03"
---⚠️ 关键点:--- 必须是笔记的第一行,否则 Obsidian 不会将其识别为属性区,所有内容都会被当作普通文本处理。2.2 属性区的结构
---
属性名1: 属性值1
属性名2: 属性值2
属性名3: 属性值3
---
# 这里是正文内容规则:
---必须放在笔记的最开头- 属性名和属性值之间用
:(英文冒号)加一个空格分隔 - 多个属性各占一行
- 第二个
---之后是正文
2.3 属性名和属性值的格式要求
属性名命名规则:
- 推荐使用小写英文字母和连字符
- - 避免使用空格和特殊字符
- 可以使用中文,但建议保持一致性
属性值格式要求:
# ✅ 正确:英文冒号 + 一个空格
标题: "我的笔记"
# ❌ 错误:中文冒号
标题:"我的笔记"
# ❌ 错误:冒号后没有空格
标题:"我的笔记"3. 属性的类型与格式
3.1 支持的属性类型
| 类型 | 说明 | 示例 |
|---|---|---|
| 文本 | 单行文本 | 标题: "我的笔记" |
| 数字 | 整数或小数 | 评分: 8.5 |
| 日期 | ISO 格式日期 | 日期: 2026-08-03 |
| 日期时间 | ISO 格式日期时间 | 更新于: 2026-08-03T07:17:55 |
| 复选框 | true/false | 已完成: true |
| 列表 | 多个值 | 标签: [日记, 学习] |
| 标签 | 特殊类型,用于 tags | tags: [日记, 笔记] |
3.2 属性值的引号使用
当属性值包含空格或特殊字符时,建议用引号包裹:
✅ 推荐写法:
---
标题: "JR-2026-08-03"
日期: "2026 08 03 星期一"
位置: "云南-丽江市"
天气: "小雨 / 小雨"
---❌ 不推荐(虽然有时也能解析):
---
标题: JR-2026-08-03
日期: 2026 08 03 星期一
位置: 云南-丽江市
天气: 小雨 / 小雨
---3.3 列表(数组)的写法
写法一(行内):
---
tags: [日记, 学习, Obsidian]
分类: [个人, 知识管理]
---写法二(分行):
---
tags:
- 日记
- 学习
- Obsidian
分类:
- 个人
- 知识管理
---💡 提示:分行写法在实时预览模式下会显示为彩色标签样式,更加美观。
4. 属性与正文的区别
4.1 核心区别
| 位置 | 用途 | 格式支持 |
|---|---|---|
| 属性区 | 存储结构化数据(给机器读) | ❌ 不支持 Markdown 格式 |
| 正文区 | 展示内容(给人读) | ✅ 完整支持 Markdown 格式 |
4.2 属性区不支持 Markdown
在 --- 包裹的属性区里,所有 Markdown 格式(加粗、斜体、链接、列表标记等)都是无效的,会被当作纯文本显示。
| 格式 | 在正文中 | 在属性区 |
|---|---|---|
**加粗** | ✅ 显示为加粗 | ❌ 显示为 **加粗** 纯文本 |
*斜体* | ✅ 显示为斜体 | ❌ 显示为 *斜体* 纯文本 |
[[内部链接]] | ✅ 可点击链接 | ❌ 显示为 [[内部链接]] 纯文本 |
4.3 推荐做法
- 属性区:只存数据,不加任何格式
- 正文区:自由使用 Markdown 格式展示内容
---
属性区:纯数据
标题: "我的读书笔记"
作者: "张三"
评分: 8.5
---
# 正文区:用 Markdown 展示
**书名**:《如何高效阅读》
*作者*:张三
评分:⭐⭐⭐⭐⭐5. 扁平结构与嵌套结构
5.1 扁平结构(无嵌套)
所有属性都在同一层级:
---
标题: "JR-2026-08-03"
日期: "2026 08 03 星期一"
位置: "云南-丽江市"
天气: "小雨 / 小雨"
温度: "22℃ / 14℃"
---显示效果:在属性编辑器中显示为可视化表格,带标题和"Add property"按钮。
5.2 嵌套结构(有层级)
属性下包含子属性,子属性必须缩进 2 个空格:
---
日记信息:
标题: "JR-2026-08-03"
日期: "2026 08 03 星期一"
位置: "云南-丽江市"
今日天气:
天气: "小雨 / 小雨"
温度: "22℃ / 14℃"
---显示效果:在属性编辑器中显示为可折叠的树形结构,点击顶层属性前的箭头可展开/收起。
5.3 两种结构的对比
| 特征 | 扁平结构 | 嵌套结构 |
|---|---|---|
| 缩进 | 无缩进 | 子属性缩进 2 个空格 |
| 显示方式 | 可视化表格 | 可折叠树形结构 |
| 新增按钮 | ✅ 有 | ✅ 有(展开后可见) |
| 适合场景 | 属性少、结构简单 | 属性多、需要分类管理 |
5.4 嵌套结构缩进规则
✅ 正确:2 个空格
日记信息:
标题: "JR-2026-08-03" # ← 2 个空格
日期: "2026 08 03 星期一" # ← 2 个空格❌ 错误:4 个空格或 Tab
日记信息:
标题: "JR-2026-08-03" # ← 4 个空格,错误
日期: "2026 08 03 星期一" # ← 4 个空格,错误⚠️ 重要:Obsidian 属性编辑器只认 2 个空格作为标准缩进。使用 4 个空格或 Tab 会导致嵌套结构无法被识别。
6. 显示模式设置
6.1 设置路径
设置 → 编辑器 → 文档中的属性
有三个选项:
| 选项 | 效果 |
|---|---|
| 可见 (Visible) | 显示为可视化属性编辑器(表格/树形) |
| 源代码 (Source) | 显示为原始 YAML 代码 |
| 隐藏 (Hidden) | 不显示属性区 |
6.2 不同结构对应的显示模式
| 属性结构 | 可见模式显示 | 源代码模式显示 |
|---|---|---|
| 扁平结构 | 可视化表格(带新增按钮) | YAML 代码高亮 |
| 嵌套结构 | 可折叠树形结构 | YAML 代码高亮 |
6.3 切换显示模式
如果属性区显示为纯代码,可以尝试:
- 切换可见/源代码:在设置中切换选项
- 切换笔记显示模式:点击笔记右上角
···→ 切换显示模式(实时预览 ↔ 源码模式) - 关闭再重新打开笔记:强制刷新渲染
7. 常见问题与排查
7.1 属性区全部变红
原因:格式错误,Obsidian 无法解析。
排查清单:
| 检查项 | 解决方法 |
|---|---|
冒号是否为英文 : | 将中文冒号 : 改为英文冒号 : |
| 冒号后是否有空格 | 确保是 属性名: 属性值 格式 |
第一行是否为 --- | 删除前面的空行或空格 |
| 是否有隐藏字符 | 切换到源码模式,全选删除后重新手动输入 |
7.2 嵌套结构不显示为折叠
原因:缩进不正确或第一行有空格。
排查清单:
| 检查项 | 解决方法 |
|---|---|
| 子属性缩进是否为 2 个空格 | 将 Tab 或 4 个空格改为 2 个空格 |
--- 是否是第一行 | 删除前面的空行或空格 |
| 设置是否为"可见" | 设置 → 编辑器 → 文档中的属性 → 可见 |
| 是否需要刷新 | 关闭笔记重新打开,或切换显示模式 |
7.3 属性值显示异常
原因:属性值包含空格或特殊字符。
解决方法:
# ❌ 可能出问题
日期: 2026 08 03 星期一
天气: 小雨 / 小雨
# ✅ 加引号包裹
日期: "2026 08 03 星期一"
天气: "小雨 / 小雨"7.4 属性区显示为纯文本(不解析)
原因:--- 不在第一行。
解决方法:确保笔记的第一行第一列就是 ---,前面没有空行或空格。
8. 属性与 Dataview 配合
8.1 基本查询
当你积累了足够的笔记后,可以用 Dataview 插件对属性进行查询和汇总。
示例:查询所有天气为"晴"的日记
TABLE
位置 as "地点",
天气 as "天气",
温度 as "温度"
FROM "日记"
WHERE 天气 = "晴"
SORT file.ctime DESC8.2 嵌套属性的查询
嵌套属性在 Dataview 中需要用 . 访问:
---
日记信息:
标题: "JR-2026-08-03"
位置: "云南-丽江市"
---查询方式:
TABLE
日记信息.位置 as "地点"
FROM "日记"9. 模板中的属性应用
9.1 基本模板
配合 Templater 插件,可以在新建笔记时自动填充属性:
---
标题: "<% tp.file.title %>"
创建日期: "<% tp.date.now("YYYY-MM-DD") %>"
创建时间: "<% tp.date.now("HH:mm:ss") %>"
---9.2 带天气的日记模板示例
---
日记信息:
标题: "<% tp.file.title %>"
日期: "<% tp.date.now("YYYY-MM-DD dddd") %>"
时间: "<% tp.date.now("HH:mm:ss") %>"
今日天气:
位置: "云南-丽江市"
天气: "小雨 / 小雨"
温度: "22℃ / 14℃"
---10. 总结
核心要点
| 规则 | 说明 |
|---|---|
--- 必须在第一行 | 前面不能有空行或空格 |
冒号必须是英文 : | 不能用中文冒号 : |
| 冒号后必须有一个空格 | 属性名: 属性值 |
| 嵌套缩进为 2 个空格 | 不能用 Tab 或 4 个空格 |
| 含空格的属性值加引号 | 标题: "我的笔记" |
| 属性区不支持 Markdown | 不加粗、不斜体、不加链接 |
结构选择建议
- 属性少(≤5 个) → 用扁平结构,显示为可视化表格
- 属性多需要分类 → 用嵌套结构,显示为可折叠树形
遇到问题时按顺序检查
---是否在第一行第一列- 冒号是否为英文
: - 冒号后是否有空格
- 嵌套缩进是否为 2 个空格
- 含空格的属性值是否加引号
- 设置 → 编辑器 → 文档中的属性 → 是否为"可见"
- 关闭笔记重新打开
评论区
共 2 条评论