YAML-Spickzettel: Syntax mit Beispielen
YAML-Spickzettel mit Beispielen: Maps, Listen, Strings, mehrzeilige Blöcke mit | und >, Datentypen, Anker und Aliase sowie typische Fehler wie das Norwegen-Problem.
45 Einträge
Grundlagen
name: AdaSchlüssel und Wert, getrennt durch Doppelpunkt und Leerzeichenserver:
host: localhost
port: 8080Verschachtelte Map: Einrückung mit Leerzeichen, Tabs sind nicht erlaubt# KommentarKommentar bis zum Zeilenende; vor # muss nach einem Wert ein Leerzeichen stehen---Beginn eines neuen Dokuments; mehrere Dokumente pro Datei sind möglich, etwa bei Kubernetes...Ende eines Dokuments (selten nötig)Listen
früchte:
- Apfel
- BirneYAML Liste in Blockform: jedes Element mit Bindestrich und Leerzeichenfrüchte: [Apfel, Birne]Liste in Flow-Schreibweise, wie in JSONpersonen:
- name: Ada
alter: 36
- name: AlanListe von Maps; die Schlüssel eines Elements stehen bündig unter dem erstenmatrix:
- [1, 2]
- [3, 4]Verschachtelte Listenleer: []Leere ListeMaps
punkt: {x: 1, y: 2}Map in Flow-Schreibweiseleer: {}Leere Map"schlüssel mit: doppelpunkt": wertSchlüssel mit Sonderzeichen in Anführungszeichen? [a, b]
: wertKomplexer Schlüssel mit ? (selten, nicht jeder Parser unterstützt das)Strings und Anführungszeichen
text: Hallo WeltEinfacher String ohne Anführungszeichen (plain scalar)text: 'Sie sagte: "Hallo"'Einfache Anführungszeichen: keine Escape-Sequenzen, '' steht für ein einzelnes 'text: "Zeile 1\nZeile 2"Doppelte Anführungszeichen: Escape-Sequenzen wie \n, \t, \u00e4pfad: 'C:\Temp'Backslashes in einfachen Anführungszeichen bleiben erhaltenfarbe: "#ff0000"Werte mit #, :, @, *, & oder einem Backtick am Anfang in Anführungszeichen setzenMehrzeilige Strings
skript: |
echo eins
echo zweiLiteral-Block |: Zeilenumbrüche bleiben erhalten, ideal für Skriptetext: >
Ein langer
AbsatzGefalteter Block >: Zeilenumbrüche werden zu Leerzeichen, Leerzeilen zu Umbrüchentext: |-
ohne Umbruch am Ende|- bzw. >-: abschließenden Zeilenumbruch entfernen (strip)text: |+
mit allen Umbrüchen
|+ bzw. >+: alle Zeilenumbrüche am Ende behalten (keep)code: |2
eingerücktEinrückungsangabe: Inhalt beginnt nach zwei Leerzeichen, der Rest bleibt erhaltentext: Dies ist
ein umbrochener WertPlain Scalar über mehrere Zeilen: wird zu einer Zeile mit Leerzeichen verbundenDatentypen
anzahl: 42Ganzzahl; auch 0x2A (hex) und 0o52 (oktal, YAML 1.2)preis: 9.99Gleitkommazahl; 1e3, .inf, -.inf, .nan sind ebenfalls Zahlenaktiv: trueBoolean; YAML 1.2 kennt nur true und falsewert: nullNull; auch ~ oder ein leerer Wertdatum: 2026-10-10Viele Parser machen daraus ein Datum (YAML-1.1-Typ timestamp); als Text in Anführungszeichen setzenplz: "01067"Führende Null erhalten: als String schreibenwert: !!str 123Typ ausdrücklich festlegen (Tag); auch !!int, !!float, !!boolbild: !!binary R0lGODlh…Binärdaten als Base64 (YAML 1.1, nicht überall unterstützt)Anker und Aliase
basis: &basis
timeout: 30YAML Anker &name markiert einen Knoten zur Wiederverwendungkopie: *basisAlias *name setzt den markierten Knoten hier eindienst:
<<: *basis
port: 80Merge Key <<: Schlüssel des Ankers übernehmen und ergänzen (YAML 1.1, von Docker Compose und vielen Parsern unterstützt)<<: [*a, *b]Mehrere Anker zusammenführen; bei gleichen Schlüsseln gewinnt der ersteStolperfallen
land: NONorwegen-Problem: YAML-1.1-Parser lesen yes, no, on, off, y, n als Boolean. Lösung: land: "NO"version: 1.10Wird zur Zahl 1.1. Versionsnummern in Anführungszeichen: "1.10"datei: 0755In YAML 1.1 oktal (493), in YAML 1.2 dezimal 755. Eindeutig: 0o755 oder als Stringport: 22:22Zahlen mit Doppelpunkt können in YAML 1.1 als Sexagesimalzahl gelesen werden; Docker empfiehlt Port-Angaben in Anführungszeichenschlüssel:wertOhne Leerzeichen nach dem Doppelpunkt ist das ein einzelner String, keine MapTabs zur EinrückungTabs sind für Einrückung verboten und führen zu Parserfehlern; Editor auf Leerzeichen stellendoppelt: 1
doppelt: 2Doppelte Schlüssel sind laut Spezifikation ungültig; manche Parser nehmen still den letzten Wertbefehl: echo "a: b"Doppelpunkt mit Leerzeichen im Wert verwirrt den Parser; ganzen Wert in Anführungszeichen setzenKein Eintrag gefunden. Versuchen Sie einen anderen Begriff oder wählen Sie „Alle Gruppen“.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
YAML-Syntax kompakt
Dieser YAML-Spickzettel fasst die YAML Syntax in 45 Beispielen zusammen: Maps und jede Form einer YAML Liste, Strings mit und ohne Anführungszeichen, mehrzeilige Blöcke mit | und >, Datentypen, YAML Anker und Aliase sowie die typischen Stolperfallen. Er ist als kompaktes YAML Cheat Sheet für Docker Compose, Kubernetes, GitHub Actions, Ansible und andere Konfigurationsdateien gedacht.
YAML strukturiert Daten über Einrückung. Wer YAML mehrzeilig schreiben will, wählt zwischen dem Literal-Block |, der Zeilenumbrüche erhält, und dem gefalteten Block >, der Zeilen zu einem Absatz verbindet. Die Zusätze - und + steuern, was mit Umbrüchen am Ende passiert. Wiederholte Abschnitte lassen sich mit einem Anker &name markieren und mit *name oder dem Merge Key << wiederverwenden.
Viele Fehler entstehen durch automatische Typerkennung: NO wird in YAML 1.1 zu false, 1.10 zur Zahl 1.1 und 0755 je nach Version zu einer Oktal- oder Dezimalzahl. Im Zweifel helfen Anführungszeichen. Ob Ihre Datei gültig ist und welche Struktur ein Parser daraus macht, zeigen YAML formatieren und YAML in JSON.
Anleitung: YAML-Spickzettel in 3 Schritten
- Wählen Sie eine Gruppe wie „Mehrzeilige Strings“ oder „Stolperfallen“ oder suchen Sie nach einem Begriff.
- Lesen Sie die Erklärung; das Ergebnis als JSON steht meist dahinter.
- Kopieren Sie das Beispiel mit „Kopieren“ und prüfen Sie Ihre fertige Datei mit dem YAML-Formatierer.
Typische Anwendungsfälle
- Docker-Compose-, Kubernetes- oder GitHub-Actions-Dateien ohne Einrückungsfehler schreiben.
- Mehrzeilige Skripte und Texte in CI-Konfigurationen richtig mit
|oder>angeben. - Wiederholte Abschnitte mit Ankern und Aliasen zusammenfassen.
- Typfallen wie
NOals Boolean oder1.10als Zahl vermeiden.
Häufige Fragen
Was ist der Unterschied zwischen | und > in YAML?
Bei | (Literal-Block) bleiben alle Zeilenumbrüche erhalten, gut für Skripte und Zertifikate. Bei > (gefalteter Block) werden einfache Zeilenumbrüche zu Leerzeichen, nur Leerzeilen erzeugen einen Umbruch; gut für lange Fließtexte.
Darf ich in YAML Tabs verwenden?
Nicht zur Einrückung. Die Spezifikation verbietet Tabs dort, Parser melden dann Fehler. Innerhalb von Werten sind Tabs erlaubt. Stellen Sie Ihren Editor für YAML-Dateien auf Leerzeichen ein.
Warum wird NO zu false?
Parser nach YAML 1.1, darunter PyYAML, werten yes, no, on, off und ähnliche Wörter als Boolean. YAML 1.2 kennt nur true und false. Setzen Sie solche Werte in Anführungszeichen.
Wie viele Leerzeichen soll ich einrücken?
Die Anzahl ist frei, muss aber innerhalb einer Ebene gleich bleiben. Üblich sind zwei Leerzeichen; viele Projekte und Formatierer nutzen diesen Wert.
Ist JSON gültiges YAML?
Weitgehend ja: YAML 1.2 wurde so gestaltet, dass JSON-Dokumente gültiges YAML sind. Kleine Ausnahmen betreffen etwa doppelte Schlüssel oder sehr lange Schlüssel. Umgekehrt ist YAML meist kein gültiges JSON.
Welche Dateiendung ist richtig, .yml oder .yaml?
Beide sind verbreitet und funktionieren. Die YAML-Projektseite empfiehlt .yaml. Manche Werkzeuge erwarten einen festen Namen, etwa docker-compose.yml oder compose.yaml; dort gilt, was das Werkzeug sucht.
Das könnte auch helfen
HTTP-Statuscodes
Alle gängigen HTTP-Statuscodes von 100 bis 511 mit Bedeutung, typischer Ursache und Suche.
ÖffnenHTTP-Header-Referenz
Wichtige Anfrage- und Antwort-Header mit Bedeutung und Beispiel, durchsuchbar.
ÖffnenMIME-Typen
Über 150 MIME-Typen nachschlagen: Dateiendung zu Content-Type und umgekehrt.
ÖffnenGit-Befehle
Git-Spickzettel: die wichtigsten Befehle nach Aufgaben gruppiert, durchsuchbar und kopierbar.
ÖffnenBash-Befehle
Bash- und Linux-Befehle für Dateien, Text, Prozesse und Netzwerk, mit Suche und Kopieren.
ÖffnenPort-Liste
Bekannte TCP- und UDP-Ports von 20 bis 51820 mit Dienst und Hinweis, durchsuchbar.
Öffnen