그래서 나는 다음과 같이 할 수 있다는 것을 안다.
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을 사후 처리하는 아이디어에 대한 질문을 열어 보겠습니다.