YAML Block Scalars: Handling Multi-line Strings
Take your programming skills to the next level with interactive lessons and real-world projects.
Explore Coddy →YAML block scalars are essential features for managing multi-line strings in YAML configurations. They provide a clean and readable way to represent large text blocks, preserving or folding newlines as needed.
Types of Block Scalars
YAML offers two types of block scalars:
- Literal Block Scalar (|): Preserves all newlines within the block.
- Folded Block Scalar (>): Folds newlines to spaces, except for empty lines and more-indented lines.
Literal Block Scalar
Literal block scalars are denoted by the pipe character (|). They maintain all line breaks in the text.
description: |
This is a multi-line
description that preserves
line breaks.
Each line will appear as-is.
Folded Block Scalar
Folded block scalars use the greater-than symbol (>). They convert single line breaks to spaces, creating a single long line.
about: >
This is a long description
that will be folded into a
single line. Empty lines
create paragraph breaks.
Indentation and Chomping Indicators
Block scalars can be further customized with indentation and chomping indicators:
- Indentation: Specify the indentation level with a number after the block scalar indicator.
- Chomping: Control trailing newlines with '-' (strip), '+' (keep), or nothing (clip).
example: |2-
This block is indented by 2 spaces
and will strip all trailing newlines.
Use Cases
Block scalars are particularly useful for:
- Configuration files with multi-line values
- Embedding scripts or code snippets
- Preserving formatting in text blocks
They're often used in application configurations, Docker files, and Kubernetes manifests.
Best Practices
- Choose the appropriate scalar type based on your newline requirements.
- Be consistent with indentation within your YAML files.
- Use chomping indicators to control trailing newlines effectively.
- Consider readability when deciding between block scalars and other multi-line string formats.
Related Concepts
To further enhance your YAML skills, explore these related topics:
Understanding block scalars is crucial for effectively managing complex string data in YAML. They provide a powerful tool for maintaining readability and precision in your configurations.