2013-10-26 9 views
5

Czy istnieje sposób utworzenia wielowierszowego skalaru w YAML, który zachowałby wiodące przestrzenie dla linii wszystkich?Linia wieloliniowa z liniami zaczynającymi się od przestrzeni

Na przykład ten tekst:

* apples 
* oranges 
* lemons 

celowo rozpoczyna każdą linię przestrzeni. Co zrobić, jeśli chcę mieć dokładnie powyższą ciąg (tj " * apples\n * oranges\n * lemons" zdefiniowana gdzieś w dokumencie YAML? Czy jest to możliwe do zrobienia bez utraty przestrzeni i w najbardziej czytelny sposób?

zwykły sposób przy użyciu | nie działa gdyż pozbawia spacje przed gwiazdkami:

data: 
    maybe_a_bulleted_list: | 
     * apples 
     * oranges 
     * lemons 

ale czy mogę tylko powiedzieć, że następny blok jest wcięty czterema spacjami zamiast pięciu (odjęcie poprzedniego wcięcia, który jest już znany), byłoby prawie czego potrzebuję

Czy można to osiągnąć dzięki eleganckiemu YAML?


Tło: Próbuję utworzyć plik edytowalny przez człowieka, który zawiera małe sekcje tekstu, który zostanie przekształcony w HTML. Chciałbym skorzystać z Markdown, ale ponieważ sekcje będą tylko prostymi (nie) uporządkowanymi listami, myślę o wspieraniu zarówno Markdown, jak i TracWiki. Problem polega na tym, że format TracWiki, aby działał poprawnie, potrzebuje każdego elementu listy wypunktowanej, aby zacząć od spacji (w przeciwnym razie elementy wielowierszowe nie będą się prawidłowo składać).

Odpowiedz

5

Powinieneś zajrzeć do specyfikacji Block Chomping Indicator.

W twoim przypadku będzie to wyglądać tak:

data: 
    maybe_a_bulleted_list: |4+ 
     * apples 
     * oranges 
     * lemons 
Powiązane problemy