araç köşesi

YAML Biçimlendirme ve Doğrulama

YAML dosyasını doğrulayın ve düzgün girintiyle yeniden yazın; hata varsa satırını ve sebebini görün

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

YAML'da tek bir yanlış boşluk bütün dosyayı geçersiz kılar: docker compose up komutu ya da GitHub Actions iş akışı yalnızca "yaml: line 7" gibi kısa bir hatayla durur. Dosyanın içeriğini sol panele yapıştırın. Metin geçersizse araç ilk hatanın satırını ve sebebini sizin dilinizde söyler: girintide sekme (Tab) kullanılmışsa, aynı blokta bir anahtar iki kez yazılmışsa, bir tırnak ya da köşeli parantez kapanmamışsa ya da aynı düzeydeki satırlar farklı sayıda boşlukla başlıyorsa bunu ayrı ayrı belirtir. Metin geçerliyse sağ panelde tek düzen girintiyle yeniden yazılır: örnekteki 8 boşlukla kaymış image satırı 4 boşluğa iner, liste maddeleri (- "8080:80") üst anahtarın altına iki boşluk içeri alınır, fazladan boşluklar temizlenir. # ile yazılmış yorumlar, anahtarların sırası ve --- ile ayrılmış birden çok belge olduğu gibi kalır. Sonuç satırı belge ve satır sayısını söyler.

Bu araç yaml formatter, yaml validator, yaml beautifier, docker compose yaml kontrol, yaml lint aramalarıyla da biliniyor.

YAML nedir?

YAML (YAML Ain't Markup Language), ayar dosyaları için tasarlanmış, insanın okuyup yazabileceği bir veri biçimidir. Süslü parantez ve tırnak yerine girinti kullanır: anahtar: değer satırları ve - ile başlayan liste maddeleri, kaç boşluk içeride olduklarına göre iç içe geçer. docker-compose, GitHub Actions, Kubernetes, Ansible ve Home Assistant ayarları YAML ile yazılır. Yorum (#) destekler; JSON'dan farkı budur.

Girinti (indentation) nedir?

YAML'da girinti, bir satırın başındaki boşluk sayısıdır ve süs değil yapıdır: bir anahtarın altındaki satırlar ondan daha fazla boşlukla başlarsa onun içine girer. Aynı düzeydeki satırlar aynı sayıda boşlukla başlamalıdır. Kaç boşluk kullanılacağı serbesttir (2 en yaygın) ama sekme karakteri hiçbir yerde girinti olarak kabul edilmez.

YAML ile JSON arasındaki fark nedir?

İkisi de aynı türden veriyi (anahtar-değer, liste, sayı, metin) taşır ve her JSON belgesi aynı zamanda geçerli bir YAML'dır. Fark yazımdadır: JSON yapıyı süslü parantez ve köşeli parantezle, YAML girintiyle kurar. YAML yorum yazmaya izin verir ve tırnaksız metin kabul eder; bu yüzden elle düzenlenen ayar dosyalarında tercih edilir. JSON ise daha katıdır, programlar arası veri alışverişinde ve API'lerde kullanılır. Birinden diğerine geçmek için JSON'dan YAML'a aracını kullanın.

En sık YAML hataları ve anlamları

YAML girintiyi anlam olarak okur: bir satırın kaç boşlukla başladığı, onun hangi anahtarın altında olduğunu belirler. Bu yüzden editörün Tab tuşuyla eklediği sekme karakteri yasaktır; göze boşluk gibi görünür ama YAML onu reddeder. Aynı düzeydeki iki satırın biri 2, diğeri 3 boşlukla başlıyorsa dosya ya hata verir ya da beklediğinizden farklı bir yapı oluşur.

İkinci sık hata yinelenen anahtardır: aynı blokta iki kez ports: yazmak. Bazı programlar bunu sessizce kabul edip ikincisini kullanır ve ilk yazdığınız ayar kaybolur; bu araç YAML 1.2 kuralına uyarak hata verir ve satırını gösterir. Üçüncüsü iki nokta üst üsteden sonra boşluk unutmaktır: image:nginx bir anahtar-değer çifti değil, tek bir metindir.

  • "sekme kullanılamaz" → satırın başındaki Tab'ı boşluklarla değiştirin
  • "anahtar ikinci kez yazılmış" → iki satırdan birini silin ya da birleştirin
  • "kapanmamış tırnak" → satırdaki " ya da ' işaretlerini sayın

Yeniden yazma neyi değiştirir, neyi korur?

Araç dosyayı okuyup aynı veriyi yeniden yazar: girinti tek düzene iner, liste maddeleri üst anahtarın bir kademe içine alınır, yorumların önündeki fazla boşluklar teke iner. Anahtarlar, değerler, yorumlar ve anahtarların sırası korunur; "false" gibi tırnaklı metinler tırnaklı kalır, çünkü tırnağı kaldırmak onu mantıksal değere çevirirdi.

Alfabetik sıralama isteğe bağlıdır ve her bloğu kendi içinde sıralar; bir anahtarın üstündeki yorum o anahtarla birlikte taşınır. docker-compose ya da Kubernetes dosyalarında sıra anlam taşımaz ama okunurluk için alışılmış bir düzen vardır (image önce, ports sonra); bu yüzden varsayılan sıra korunmasıdır.

Sık sorulanlar

YAML dosyamın geçerli olup olmadığını nasıl anlarım?

İçeriği bu sayfadaki sol panele yapıştırın. Geçerliyse sonuç satırında "Geçerli YAML" yazar ve dosya düzgün girintiyle sağ panelde görünür. Geçersizse ilk hatanın satır numarası ve sebebi gösterilir.

Yorumlarım silinir mi?

Hayır. # ile başlayan satır yorumları da satır sonundaki yorumlar da yerinde kalır. JSON'a çevirmek yorumları siler; bu araç YAML'ı yine YAML olarak yazdığı için silmez.

docker-compose.yml ve GitHub Actions dosyaları için uygun mu?

Evet. Araç YAML'ın genel kurallarını denetler; docker-compose, GitHub Actions, Kubernetes, Ansible ve Home Assistant dosyalarının hepsi YAML'dır. Ancak bir anahtarın o programda geçerli olup olmadığını (ör. yanlış yazılmış bir docker seçeneği) denetlemez.

Dosyam bir sunucuya gönderiliyor mu?

Hayır. Doğrulama ve biçimlendirme tamamen tarayıcınızda yapılır; parola ya da anahtar içeren ayar dosyaları dahil, yapıştırdığınız metin bu sayfadan çıkmaz.