Jadi, saya tahu saya bisa melakukan sesuatu seperti ini:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist: *sites
Dan memiliki sitelist
dan anotherlist
keduanya mengandung www.foo.com
dan www.bar.com
. Namun, apa yang saya inginkan adalah untuk anotherlist
untuk juga mengandung www.baz.com
, tanpa harus mengulang www.foo.com
dan www.baz.com
.
Melakukan ini memberi saya kesalahan sintaks di parser YAML:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist: *sites
- www.baz.com
Hanya dengan menggunakan jangkar dan alias, sepertinya tidak mungkin melakukan apa yang saya inginkan tanpa menambahkan level substruktur lain, seperti:
sitelist: &sites
- www.foo.com
- www.bar.com
anotherlist:
- *sites
- www.baz.com
Artinya, pengguna file YAML ini harus menyadarinya.
Apakah ada cara YAML murni untuk melakukan sesuatu seperti ini? Atau apakah saya harus menggunakan beberapa pemrosesan pasca-YAML, seperti menerapkan substitusi variabel atau pengangkatan otomatis jenis substruktur tertentu? Saya sudah melakukan pasca-pemrosesan semacam itu untuk menangani beberapa kasus penggunaan lainnya, jadi saya tidak sepenuhnya menolaknya. Tetapi file YAML saya akan ditulis oleh manusia, bukan yang dibuat oleh mesin, jadi saya ingin meminimalkan jumlah aturan yang perlu dihafal oleh pengguna saya di atas sintaks YAML standar.
Saya juga ingin dapat melakukan hal serupa dengan peta:
namedsites: &sites
Foo: www.foo.com
Bar: www.bar.com
moresites: *sites
Baz: www.baz.com
Saya telah mencari melalui spesifikasi YAML , dan tidak dapat menemukan apa pun, jadi saya curiga jawabannya adalah "tidak, Anda tidak dapat melakukan ini". Tapi jika ada yang punya ide, itu bagus.
EDIT: Karena tidak ada jawaban, saya berasumsi bahwa tidak ada yang melihat apa pun yang belum saya lihat di spesifikasi YAML dan ini tidak dapat dilakukan di lapisan YAML. Jadi saya membuka pertanyaan untuk ide pasca-pemrosesan YAML untuk membantu hal ini, jika ada yang menemukan pertanyaan ini di masa mendatang.