Существует ли синтаксис YAML для совместного использования части списка или карты?

Итак, я знаю, что могу сделать что-то вроде этого:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist: *sites

И имеютsitelist а такжеanotherlist оба содержатwww.foo.com а такжеwww.bar.com, Тем не менее, что я действительно хочу дляanotherlist втакже содержатьwww.baz.comбез необходимости повторятьwww.foo.com а такжеwww.baz.com.

Это дает мне синтаксическую ошибку в парсере YAML:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist: *sites
  - www.baz.com

Просто используя якоря и псевдонимы, кажется невозможным сделать то, что я хочу, без добавления другого уровня субструктуры, такого как:

sitelist: &sites
  - www.foo.com
  - www.bar.com

anotherlist:
  - *sites
  - www.baz.com

Что означает, что пользователь этого файла YAML должен знать об этом.

Есть ли чистый способ YAML сделать что-то подобное? Или мне придется использовать некоторую обработку после YAML, такую как внедрение подстановки переменных или автоподъем определенных типов подструктуры? Я уже делаю такую постобработку, чтобы обработать пару других вариантов использования, поэтому я не совсем против этого. Но мои файлы YAML будут написаны людьми, а не сгенерированы машиной, поэтому я хотел бы свести к минимуму количество правил, которые должны запомнить мои пользователи, в дополнение к стандартному синтаксису YAML.

Я также хотел бы иметь возможность сделать аналогичную вещь с картами:

namedsites: &sites
  Foo: www.foo.com
  Bar: www.bar.com

moresites: *sites
  Baz: www.baz.com

У меня был поиск черезYAML specи не смог ничего найти, поэтому я подозреваю, что ответ просто "нет, ты не можешь этого сделать". Но если у кого-то есть идеи, это было бы здорово.

РЕДАКТИРОВАТЬ: Поскольку ответов не было, я предполагаю, что никто не заметил ничего, чего у меня нет в спецификации YAML, и что это невозможно сделать на уровне YAML. Так что я открываю вопрос к идее для последующей обработки YAML, чтобы помочь с этим, на случай, если кто-нибудь найдет этот вопрос в будущем.

Ответы на вопрос(5)

Ваш ответ на вопрос