YAML Tutorial
YAML (YAML Ain't Markup Language) is a human-readable data serialization language often used for configuration files. It is structured and easy to read, making it a popular choice for defining configurations in software development.
1. Basics of YAML
Key-Value Pairs
YAML represents data as key-value pairs, separated by colons:
name: John Doe
age: 30
location: New York
Indentation
YAML uses indentation (usually two spaces) to define structure. Indentation represents nested data.
person:
name: John Doe
age: 30
2. Lists
Lists are created using hyphens (-).
Example
hobbies:
- reading
- hiking
- coding
Nested Lists
Lists can also contain complex data structures:
people:
- name: John Doe
age: 30
- name: Jane Doe
age: 25
3. Comments
Use the # symbol to add comments:
# This is a comment
name: John Doe # Inline comment
4. Data Types
YAML supports strings, numbers, booleans, and null values.
name: "John" # String
age: 30 # Number
is_active: true # Boolean
middle_name: null # Null
5. Multi-Line Strings
Multi-line strings can be created using | or >.
Example
description: |
This is a multi-line
string in YAML.
The | preserves line breaks, while > collapses line breaks into spaces.
6. Anchors and Aliases
Anchors (&) and aliases (*) allow you to reuse data.
Example
default_settings: &defaults
theme: dark
notifications: enabled
user_settings:
<<: *defaults
theme: light
In this example, user_settings inherits from default_settings.
Summary
This tutorial covered YAML basics:
- Defining key-value pairs and lists.
- Using comments and data types.
- Writing multi-line strings.
- Reusing data with anchors and aliases.
YAML’s simplicity makes it a great choice for configuration files and data serialization.
Content Review
The content in this repository has been reviewed by chevp. Chevp is dedicated to ensuring that the information provided is accurate, relevant, and up-to-date, helping users to learn and implement programming skills effectively.
About the Reviewer
For more insights and contributions, visit chevp's GitHub profile: chevp's GitHub Profile.