YAML is een afkorting van "yet another markup language" of "YAML ain't markup language," de laatste recursieve afkorting wordt gebruikt om te benadrukken dat YAML voor data is en niet voor documenten. YAML is een dataserialisatietaal die wordt gebruikt om configuratiebestanden te schrijven voor de implementatie van infrastructuur. Als u bijvoorbeeld een Docker-applicatie in Kubernetes wilt implementeren, gebruikt u een YAML-bestand om de instantie te configureren. YAML is menselijk leesbaar, dus het is gemakkelijk om een bestand aan te maken en er instructies uit te lezen tijdens implementaties.
Als YAML nieuw voor u is, zal het niet lang duren voor u zich realiseert dat u een manier nodig hebt om uw strings op te breken in meerdere regels. Dit is een van de meest gestelde YAML-vragen op het web. In dit artikel behandelen we de twee belangrijkste benaderingen van YAML multiline strings, en enkele andere veelgestelde vragen.
YAML en Whitespace: Wat u moet weten
YAML-bestanden gebruiken whitespaces en carriage returns, maar de inhoud wordt geserialiseerd bij opname in een specifieke bron. Ontwikkelaars die een YAML-bestand maken, kunnen tekst opmaken met behulp van streepjes en spatiëring om de leesbaarheid te vergroten. YAML behandelt whitespaces op dezelfde manier als andere talen, dus er kunnen er zoveel zijn als nodig is om een bestand op te maken.
Hoe regels op te breken voor YAML Multiline Strings
Wanneer u YAML-bestanden opneemt, wilt u soms de regeleinden in een multiline string behouden. Neem de volgende pseudocode als voorbeeld:
sleutel:
item1
item2
item3
Na elk regelitem (bijv. item1, item2 en item3) volgt een carriage return. Als u de YAML-syntaxis laat zoals hij is, wordt de string als volgt:
item1 item2 item3
Dit stringformaat maakt één lange string zonder enige carriage returns, dus u wilt misschien de regeleinden behouden. Regeleinden kunnen bewaard blijven met de literal operator. De literal operator is het pipe-teken ("|"). Om regeleinden te behouden, moet uw YAML-syntaxis als volgt worden gewijzigd:
sleutel: |
item1
item2
item3
Let op het pipe-teken na de "sleutel"-opdracht. Wanneer de toepassing het YAML-bestand opneemt, zal het worden geconverteerd naar de volgende string:
item1\nitem2\nitem3
Het "\n"-teken staat voor een nieuwe regel. Het printen van deze string naar een applicatie zal elk item weergeven met een carriage return om de opmaak in de YAML-instructies te behouden.
YAML Multiline Blocks vs. lange Strings
Voor lange strings moet u multiline blokken gebruiken om een YAML-bestand te lezen. Als u bijvoorbeeld een alinea van 250 woorden in een YAML-bestand hebt, moet u de zinnen opdelen in multiline blocks. U wilt de carriage returns niet behouden, behalve aan het eind van een alinea. U kunt een YAML-bestand opmaken om meerdere regels te gebruiken voor lange strings en de string seriëren om spaties toe te voegen aan elk item in plaats van een nieuwe regel-teken.
Om een spatie te gebruiken in plaats van een nieuwe regel toe te voegen, gebruikt u de folded operator (“>”):
sleutel: >
item1
item2
item3
Met de folded operator voegt YAML een spatie toe bij het maken van de string. De string ziet er als volgt uit:
item1 item2 item3\n
YAML Multiline FAQ's
Hoe voegt u een regeleinde in in YAML?
Met de literal operator ("|") blijven regeleinden in een YAML-string behouden. U creëert een regeleinde met de carriage return-toets op dezelfde manier als in een standaard document. Het volgende voorbeeld bewaart de carriage return in een YAML-string:
sleutel: |
item1
item2
item3
Kunnen er in YAML lege regels staan?
Ja, een string die wordt weergegeven als een blok tekst kan ook lege regels bevatten. De keep operator ("|+") bewaart blanco lege regels samen met het nieuwe regel-teken. De volgende YAML is een voorbeeld van een multiline string met twee lege regels aan het eind van het blok:
sleutel: |+
item1
item2
item3
Een YAML-parser zal van de bovenstaande syntaxis de volgende string weergeven:
item1\nitem2\nitem3\n\n
Geeft YAML om whitespace?
Een tab whitespace is een illegaal karakter in YAML, dus eventuele inspringingen moeten worden gebruikt met een standaard enkele spatie. Tabs kunnen worden gebruikt in aangehaalde strings, maar ze kunnen niet worden gebruikt om een YAML-bestand op te maken. Consistentie in het inspringen van whitespace is belangrijk voor de leesbaarheid van data.
Zijn spaties toegestaan in YAML?
Ja, u kunt standaard spaties gebruiken in een YAML-bestand. Om in te springen moeten spaties worden gebruikt en niet het tab-teken. Tab-tekens konden fouten veroorzaken tijdens het parsen van een YAML-bestand.