什么是 YAML?

YAML(YAML Ain't Markup Language)是一种人类可读的数据序列化语言,常用于配置文件和数据交换。它使用缩进来表示结构,使其比 JSON 或 XML 更易于阅读复杂的嵌套数据。

快速了解

全称YAML Ain't Markup Language
创建时间2001 年由 Clark Evans、Ingy döt Net、Oren Ben-Kiki 创建
规范文档官方规范

YAML 工作原理

YAML 使用空白缩进来表示结构,无需括号或标签。它支持多种数据类型,包括字符串、数字、布尔值、null、数组(序列)和对象(映射)。YAML 允许注释(以 # 开头)、多行字符串以及用于重用内容的锚点和别名。它是 JSON 的超集,这意味着有效的 JSON 也是有效的 YAML。YAML 广泛用于 DevOps 工具,如 Docker Compose、Kubernetes、Ansible 和 CI/CD 管道。

主要特点

  • 使用缩进表示结构(只能用空格,不能用制表符)
  • 支持 # 符号注释
  • 使用 | 和 > 操作符支持多行字符串
  • 锚点(&)和别名(*)用于内容重用
  • 是 JSON 的超集 - 所有 JSON 都是有效的 YAML
  • 用 --- 分隔的多文档支持

常见用途

  1. 配置文件(Docker Compose、Kubernetes)
  2. CI/CD 管道定义(GitHub Actions、GitLab CI)
  3. 基础设施即代码(Ansible、CloudFormation)
  4. API 规范(OpenAPI/Swagger)
  5. 静态网站生成器(Jekyll、Hugo)

示例

# 服务器配置
server:
  host: localhost
  port: 8080
  ssl: true

database:
  type: postgresql
  credentials:
    username: admin
    password: secret

features:
  - authentication
  - logging
  - caching

QubitTool 相关工具

相关概念