YAML (YAML Ain’t Markup Language) ist ein menschenlesbares Datenformat für Konfigurationsdateien und strukturierten Datenaustausch, das auf Einrückungen statt auf Klammern oder Tags setzt.
Was bedeutet das?
YAML wurde 2001 erstmals spezifiziert und ist eine Obermenge von JSON: Jedes gültige JSON-Dokument ist gleichzeitig gültiges YAML. Dennoch unterscheidet sich die Schreibweise deutlich: Statt geschweifter Klammern und Anführungszeichen trennt YAML Schlüssel und Werte durch einen Doppelpunkt mit Leerzeichen (key: value). Hierarchien entstehen durch Einrückungen mit Leerzeichen; Tabs sind in YAML ausdrücklich verboten. Listen werden durch einen vorangestellten Bindestrich und Leerzeichen (- eintrag) gekennzeichnet.
Im Webentwicklungs- und DevOps-Umfeld ist YAML allgegenwärtig: Docker Compose beschreibt Dienste und Netzwerke in docker-compose.yml, GitHub Actions und GitLab CI definieren Deployment-Pipelines in .yml-Dateien, und der statische Site-Generator Jekyll verarbeitet YAML-Frontmatter am Anfang von Inhaltsdateien, um Metadaten wie Titel, Datum und Kategorien zu speichern. Auch Ansible-Playbooks für Server-Automatisierung sind vollständig in YAML verfasst.
Für WordPress selbst spielt YAML im regulären Betrieb keine direkte Rolle; Konfiguration erfolgt über PHP-Dateien (wp-config.php). Sobald WordPress jedoch in einen modernen DevOps-Workflow eingebettet ist, begegnet YAML auf mehreren Ebenen: beim Deployment über GitHub Actions, beim Aufsetzen von Staging-Umgebungen per Docker Compose oder bei der Konfiguration lokaler Entwicklungsumgebungen wie Lando oder DDEV, die beide auf .lando.yml beziehungsweise .ddev/config.yaml basieren.
Beispiel aus der Praxis
Ein Entwickler richtet eine lokale WordPress-Instanz mit Lando ein. Die Datei .lando.yml im Projektstamm enthält in weniger als 20 Zeilen alle notwendigen Angaben: PHP-Version, Datenbanktyp, WordPress-Webroot und lokaler Hostname. Mit einem einzigen Befehl (lando start) startet Lando die vollständige LAMP-Umgebung. Dieselbe YAML-Datei wird versioniert und gemeinsam mit dem restlichen Projektcode in ein Git-Repository eingecheckt, sodass alle Teammitglieder dieselbe Entwicklungsumgebung reproduzieren können.
Tipp aus der Praxis
YAML ist empfindlich gegenüber Einrückungsfehlern: Ein einziges falsches oder fehlendes Leerzeichen kann dazu führen, dass die gesamte Konfigurationsdatei nicht eingelesen wird. Verwenden Sie einen Editor mit YAML-Syntaxhervorhebung und aktivieren Sie, wenn vorhanden, den eingebauten YAML-Linter (VS Code, JetBrains-IDEs). Für die Kommandozeile steht das Werkzeug yamllint bereit. Besonders tückisch sind tief verschachtelte Strukturen, in denen ein falscher Einrückungsgrad eine untergeordnete Eigenschaft als Geschwisterelement erscheinen lässt, ohne dass eine offensichtliche Fehlermeldung ausgegeben wird.