Obsah
YAML (YAML Ain't Markup Language)
YAML je lidsky čitelný standard pro serializaci dat. Je navržen tak, aby byl snadno čitelný pro lidi a zároveň jednoduchý na zpracování pro stroje. V dnešním IT světě se stal de facto standardem pro konfigurační soubory, zejména v oblasti DevOps a Cloud computingu.
Název je rekurzivní zkratka, která zdůrazňuje, že YAML není značkovací jazyk (jako XML nebo HTML), ale zaměřuje se čistě na data.
Základní syntaxe a pravidla
YAML má několik striktních pravidel, která musíte dodržovat:
- Odsazování (Indentation): K definování struktury se používají výhradně mezery, nikoliv tabulátory. Počet mezer musí být konzistentní (obvykle 2 nebo 4).
- Case sensitivity: Rozlišují se malá a velká písmena.
- Kódování: Soubory musí být v kódování UTF-8.
- Přípona: Obvykle
.yamlnebo.yml.
Datové struktury v YAML
1. Klíč a hodnota (Maps/Dictionaries)
Základní stavební kámen. Odděluje se dvojtečkou s mezerou.
verze: 3.8 nazev: "Moje Aplikace" aktivni: true
2. Seznamy (Lists/Sequences)
Prvky seznamu začínají pomlčkou následovanou mezerou.
servery: - web01 - web02 - db01
3. Vnořené objekty
Struktura se vytváří odsazením.
databaze: host: localhost port: 5432 uzivatel: admin
Pokročilé techniky
Víceřádkové řetězce
YAML umožňuje elegantně zapisovat dlouhé texty (např. skripty nebo certifikáty):
- Znak | (Literal): Zachovává konce řádků.
- Znak > (Folded): Nahradí konce řádků mezerou (vytvoří jeden dlouhý odstavec).
Komentáře
Na rozdíl od JSON podporuje YAML komentáře pomocí znaku #.
# Toto je konfigurace pro produkci env: prod
Více dokumentů v jednom souboru
Můžete oddělit několik logických dokumentů pomocí tří pomlček (—). To se hojně využívá v Kubernetes manifestech.
Srovnání: YAML vs JSON vs XML
| Vlastnost | YAML | JSON | XML |
|---|---|---|---|
| Čitelnost | Výborná | Dobrá | Horší |
| Komentáře | Ano | Ne | Ano |
| Struktura | Odsazení | Závorky {}, [] | Tagy <tag> |
| Typování | Automatické | Striktní | Textové |
Časté chyby
- Tabulátory: Použití tabulátoru místo mezer je nejčastější příčinou chyby „mapping values are not allowed here“.
- Chybějící mezera: Dvojtečka musí být následována mezerou (
klíč:hodnotaje špatně,klíč: hodnotaje správně). - Špatné odsazení: Pokud prvek seznamu nezačíná na správné úrovni, změní se celá sémantika dokumentu.
Tip: Pro kontrolu správnosti syntaxe se doporučuje používat nástroje zvané YAML Linters nebo online validátory. V editoru VS Code je užitečné rozšíření „Red Hat YAML“.
