YAML validator online: kontrola a formátování

Zkontrolujte syntaxi YAML a naformátujte ho. Chybu dostanete s číslem řádku i výřezem zdroje a nástroj upozorní na past s hodnotami yes a no.

Režim
Odsazení

Vstupní YAML

Výsledek

Validní YAML
Sem se vypíše zkontrolovaný a zformátovaný výsledek.
0dokumentů·0klíčů·0úrovní zanoření·0řádků·0znaků

Jak YAML validator použít

  1. Vložte YAML do levého pole. Kontrola běží při psaní, na nic klikat nemusíte.
  2. Když je syntaxe v pořádku, zobrazí se naformátovaný výstup a statistiky dokumentu.
  3. Při chybě dostanete číslo řádku, sloupce a výřez zdroje s ukazatelem na problémové místo.
  4. Vyberte odsazení dvěma nebo čtyřmi mezerami a výsledek si zkopírujte.

Nejčastější chyby v YAML souboru

Tabulátor. YAML ho pro odsazení zakazuje úplně a chyba se špatně hledá, protože v editoru vypadá tabulátor stejně jako mezery. Nastavte si v editoru převod tabulátorů na mezery a máte pokoj.

Druhým kandidátem je nekonzistentní odsazení uvnitř jednoho bloku. Klíče na stejné úrovni musí mít stejný počet mezer. Stačí jedna navíc a parser skončí s hláškou o špatném zanoření o několik řádků dál, než kde je skutečná příčina.

Dvojtečka v hodnotě bez uvozovek. Zápis title: Chyba: nenalezeno parser rozdělí na klíč a hodnotu podle první dvojtečky a zbytek ho zmate. Hodnotu s dvojtečkou dejte do uvozovek.

Proč se z hodnoty no stane false

YAML 1.1 bere slova yes, no, on a off jako pravdivostní hodnoty. Když napíšete country: NO a myslíte tím Norsko, dostanete false. Přezdívá se tomu norský problém a naráží na něj hlavně kód, který pracuje s kódy zemí.

YAML 1.2 to napravil a pravdivostní nechává jen true a false. Tenhle nástroj pracuje podle novější specifikace, takže NO vám vrátí jako text. Jenže Ansible, PyYAML a další rozšířené parsery zůstávají u verze 1.1, takže stejný soubor se jinde přečte jinak.

Nástroj proto na taková slova bez uvozovek upozorní a vypíše řádky, kterých se to týká. Dejte je do uvozovek a soubor se bude chovat stejně všude.

Co se stane s komentáři

Komentáře při formátování zmizí. Parser je nepovažuje za data, takže se do stromu vůbec nedostanou a při zpětném výpisu není co obnovit. Týká se to všech běžných knihoven, které pracují nad datovým modelem.

Nástroj proto při komentářích ve vstupu napíše varování. U konfiguračních souborů, kde komentáře nesou půlku informace, si výstup porovnejte s originálem a komentáře vraťte ručně.

YAML a JSON: kdy použít co

Každý platný JSON je zároveň platný YAML, protože YAML 1.2 je jeho nadmnožinou. Opačně to neplatí. YAML navíc umí komentáře, kotvy, víceřádkové bloky a několik dokumentů v jednom souboru.

Pro konfiguraci, kterou čtou lidé, se hodí YAML. Pro strojovou výměnu dat po síti je jednodušší a bezpečnější JSON, protože nemá tolik nejednoznačností. Převod mezi oběma formáty zvládne převodník YAML na JSON a hotový JSON pak zpřehlední JSON formátovač.

Časté otázky

Odesílá se můj soubor na server?

Ne. Parsování i formátování běží v prohlížeči, takže ani produkční values.yaml neopustí váš počítač.

Umí nástroj kotvy a merge klíče?

Ano. Kotvy &, odkazy * i merge klíč << se při zpracování rozvinou. Ve výstupu proto uvidíte hodnoty vypsané naplno, ne odkaz. Je to správné chování, jen počítejte s tím, že výstup bude delší než vstup.

Zvládne víc dokumentů v jednom souboru?

Ano, dokumenty oddělené --- zpracuje všechny a jejich počet uvidíte ve statistikách.

Proč se mi dlouhé číslo zaokrouhlilo?

Čísla se zpracovávají jako JavaScriptový typ number, který přesně pojme celá čísla zhruba do 9 biliard. Delší identifikátory ztratí poslední číslice. Pokud jde o identifikátor, a ne o počítanou hodnotu, dejte ho do uvozovek a zůstane řetězcem.