Подтвердить что ты не робот

Отступы последовательности YAML внутри отображения

Должны ли быть следующие:

parent:
- child
- child

Итак, мы имеем последовательность значений внутри отображения.

Конкретный вопрос заключается в том, является ли отступ для 2-й и 3-й строк действительным. Ruby YAML.dump сгенерировал этот код, но парсер Yaml здесь отклоняет его, потому что дочерние строки не отступают.

то есть. он хочет что-то вроде:

parent:
  - child
  - child

Кто прав?

Глядя на спецификацию YAML, это, конечно, не очевидно, а строка

"-", "?" и символы ":", используемые для обозначения записей коллекции блоков, воспринимаются людьми как часть отступа

не помогает.

4b9b3361

Ответ 1

Да, это законный YAML. Соответствующий текст из спецификации здесь:

Так как люди воспринимают индикатор "-" как отступ, вложенные последовательности блоков могут быть отступы на одно меньшее пространство для компенсации, за исключением, конечно, если они вложены внутри другой последовательности блоков (контекст блокировки и контекст в блочном контексте).

и последующий пример 8.22:

sequence: !!seq
- entry
- !!seq
 - nested
mapping: !!map
 foo: bar