YAMLの複数行文字列スタイル(| と >)
YAMLの複数行文字列オプションをマスター:リテラルブロック(|)とフォールドブロック(>)。それぞれの使い分けとJSONとの相互変換方法を学びます。
Strings
詳細な説明
YAMLの最も強力な機能の一つが複数行文字列のサポートです。JSONではすべての文字列を1行にまとめ、改行には \n エスケープシーケンスを使う必要があるため、長いテキストが読みにくくなります。YAMLはこの問題をエレガントに解決する2つのブロックスカラースタイルを提供します。
リテラルブロックスカラー(|)-- 改行を保持:
description: |
This is line one.
This is line two.
This is line three.
JSONに変換すると:
{
"description": "This is line one.\nThis is line two.\nThis is line three.\n"
}
YAMLの各改行がJSON文字列で \n としてそのまま保持されます。末尾の改行はデフォルトで含まれます。
フォールドブロックスカラー(>)-- 改行をスペースに変換:
description: >
This is a long paragraph
that will be folded into
a single line.
JSONに変換すると:
{
"description": "This is a long paragraph that will be folded into a single line.\n"
}
改行がスペースに置換されるため、YAMLファイル内で折り返して表示したい長い段落に最適です。
チョンピングインジケータで末尾の改行を制御:
|+または>+(keep):すべての末尾改行を保持|-または>-(strip):最後の末尾改行を削除|または>(clip、デフォルト):末尾改行を1つだけ保持
clean: |-
No trailing newline here
JSON結果:"No trailing newline here"(末尾に \n なし)
JSONからYAMLに変換する際、\n 文字を含む文字列はブロックスカラーを使って可読性を向上させることができます。特に埋め込みスクリプト、SQLクエリ、ドキュメントテキストに有効です。
ユースケース
CI/CD設定ファイルで複数行のシェルスクリプトやSQLクエリを埋め込む場合。GitHub Actionsのステップで複雑なbashコマンドを実行するケースなど、可読性が重要な場面で使用します。