YAML 入门教程

发布于:2026-06-04 #YAML#语法#教程 共 403 字 约 2 分钟

YAML (YAML Ain’t Markup Language) 是一种以数据为中心、对人类友好的序列化格式,广泛应用于配置文件、Obsidian 笔记元数据、AI 提示词格式化等场景。

5 条核心规则

  1. 使用 key: value 格式写数据
  2. 用空格缩进表示层级,不能用 Tab
  3. 同一层级要对齐
  4. 列表写成 - value
  5. 在 Obsidian 中须放在 --- 之间

基本语法

YAML
UTF-8|6 Lines|
name: Tom
age: 20
is_student: true
tags:
  - YAML
  - Obsidian

三种数据结构

标量 (Scalars)

YAML
UTF-8|6 Lines|
string_value: Hello YAML
quoted: "字符串含冒号: 时需要引号"
integer: 1024
float: 3.14159
bool: true
null: ~

何时需要引号:字符串含冒号、开头有空格、含特殊字符、避免被解析为布尔值。

序列 (Lists)

YAML
UTF-8|7 Lines|
# 块格式
fruits:
  - Apple
  - Orange

# 内联格式
fruits_inline: [Apple, Orange]

映射 (Mappings)

YAML
UTF-8|6 Lines|
user:
  name: John Doe
  age: 30

# 内联格式
user_inline: { name: Jane Doe, age: 28 }

多行文本

YAML
UTF-8|9 Lines|
# 保留换行 (|)
about: |
  第一行
  第二行

# 折叠为空格 (>)
about: >
  第一行
  被折叠成一行

注释

YAML
UTF-8|2 Lines|
# 这是注释
key: value # 行尾注释

常见陷阱

  1. 使用 Tab — YAML 只认空格
  2. 冒号后没空格name:Tom 错误,必须是 name: Tom
  3. 同一层级没对齐 — 缩进不一致会导致解析错误
  4. 列表项写法不一 — 所有项都要以 - 开头
  5. 布尔值混淆true 是布尔,"true" 是字符串

Obsidian Front Matter

YAML
UTF-8|11 Lines|
---
title: 我的笔记
tags:
  - 学习笔记
  - YAML
aliases: [笔记别名]
cssclasses:
  - custom-style
status: seedling
created: 2026-06-11
---

Obsidian 原生属性 tagsaliasescssclasses 必须使用列表格式。

模板

简单笔记

YAML
UTF-8|6 Lines|
---
title: 我的笔记标题
tags:
  - 学习笔记
created: 2026-06-11
---

项目管理

YAML
UTF-8|9 Lines|
---
title: 项目-网站重建
tags:
  - 项目
  - 网站
status: in-progress
created: 2026-06-11
deadline: 2026-06-30
---