key: &keyのようにキーの横に&block-nameと書くとそのブロックをそれ以降で使い回せるようになります。これは場所はどこでもいいです。以下のbar,quux,piyoはどれも有効です。
foo:
bar: &bar
value: value
baz:
qux:
quux: &quux
value: value
hoge:
fuga:
piyo: &piyoオブジェクトに埋め込む
commonという共通ブロックを設定しました。
common: &common
one: one
two: twoこのように<<: *block-nameという記法で使えます。
foo:
zero: zero
<<: *common
three: threeこれは JSON にするとこのような感じです。fooブロックの中に共通ブロックのoneとtwoを入れれました。
{
"foo": {
"zero": "zero",
"one": "one",
"two": "two",
"three": "three"
},
"common": {
"two": "two",
"one": "one"
}
}配列に埋め込む
配列の場合は- *block-nameという記法で埋め込みます。commonは同じものを使います。また例です。
foo:
- zero: zero
- *common
- three:
value: valueJSON にするとこのような感じです。oneとtwoというキーを持ったオブジェクトがちゃんと入っているのが分かります。
{
"foo": [
{
"zero": "zero"
},
{
"one": "one"
"two": "two",
},
{
"three": {
"value": "value"
}
}
],
"common": {
"two": "two",
"one": "one"
}
}