TOML’den YAML’e: Sozdizimi Haritasi ve Yaygin Tuzaklar ile Hizli Donusum Rehberi

A sleek, modern visual showing the transformation from TOML to YAML

TOML’u YAML’e donusturmek icin en hizli yol yq -oy '.' file.toml komutudur. Manuel donusum icin, TOML [table] basliklarini YAML girintili bloklarla eslestirin, TOML dizilerini tire onekli listelere donusturun ve “Norveç Sorunu”ndan kacinmak icin belirsiz dizeleri her zaman tirnak icine alin.

Hizli Donusum: yq CLI Kullanimi

TOML (Tom’s Obvious, Minimal Language) Aralik 2025’te v1.1.0 surumune ulasti, ancak YAML hala CI/CD boru hatlari ve Kubernetes manifestlari icin standart olmaya devam ediyor. yq araci donusumu tek bir komutla halleder.

yq Kurulumu

Platform Komut
macOS/Linux brew install yq
Windows choco install yq
Python (pip) pip install yq

Mike Farah’in Go tabanli surumu hiz acisindan tercih edilir. Mike Farah’in yq belgelerinde belirtildigi uzere, arac TOML yapisini cozer ve temiz YAML olarak yeniden kodlar.

Donusumu Calistirin

Terminalde goster:

yq -oy '.' your-config.toml

Dosyaya kaydet:

yq -oy '.' your-config.toml > your-config.yaml

-oy bayragi cikti bicimini YAML olarak ayarlar. Bu, anahtar-deger ciftlerini, ic ice tablolari ve dizileri isler.

Basit 3 adimli terminal donusum sureci

Sozdizimi Ceviri Haritasi: TOML Yapisindan YAML’e

Gelistirici Drew DeVault, TOML populer olsa da YAML’in derin ic ice gecmeyi daha temiz isledigini belirtmistir. Iste tam eslestirme:

Tablolar Girintili Anahtarlara

TOML ayraç basliklari kullanir; YAML girinti kullanir.

TOML YAML
[server] server:
host = "127.0.0.1" host: 127.0.0.1
port = 8080 port: 8080

Kritik fark: TOML’de girinti sadece görseldir. YAML’de girinti yapisaldır — tek bir yanlis bosluk tum yapilandirmayi bozar.

Diziler Tire Onekli Listelere

TOML: ports = [ 8000, 8001 ]

YAML:

ports:
  - 8000
  - 8001

TOML ve YAML yan yana yapysal karsilastirmasi

Knightli.com’un acikladigi gibi, YAML’in “blok stili” listeleri okunabilir kilar, dikey hizalamanin tutarli olmasi kosulunda.

Satir Ici Tablolar ve Noktali Anahtarlar

TOML Yapisi YAML Esdeğeri
[a.b.c] (noktali baslik) a:b:c: (ic ice girinti)
point = { x = 1, y = 2 } (satir ici tablo) point:x: 1y: 2

Gercek Dunya Kullanim Senaryoları

Hugo Statik Site Yapilandirmasi

Hugo hugo.toml, hugo.yaml veya hugo.json kabul eder. Projelerin cogu TOML ile baslar (varsayilan), ardindan yapilandirmanin Netlify veya GitHub Actions gibi dagitim platformlariyla uyumlu hale getirilmesi gerektiginde YAML’e gecis yapar. Hammer Europe, hugo komutunun bu dosyalari okuyarak Markdown’un canli bir siteye nasil donusecegini belirledigini belirtir.

Python Paketleme: pyproject.toml’den CI/CD YAML’e

Python toplulugu pyproject.toml’i PEP 518 araciligiyla standartlastirdi. Bu ayarlarin genellikle GitHub Actions CI/CD is akislari icin YAML’e cevrilmesi gerekir. AI ajan is akislari icin, CocoIndex, optimize edilmis YAML yapilandirmalarinin token kullanimini %70’e kadar azaltabilecegini raporlamaktadir.

Norveç Sorunu ve Diger Donusum Tuzaklari

NO Ulke Kodu Hatasi

YAML 1.1’de, NO, OFF ve YES gibi ciltsiz dizgeler otomatik olarak boolean false veya true degerlerine donusturulur. TOML bunu tum dizgeler icin tirnak isaretini zorunlu kilarak onler. Donusum sirasinda, belirsiz degerleri YAML’de her zaman tirnak icine alin:

Deger YAML 1.1 Yorumu Cozum
NO false "NO"
OFF false "OFF"
YES true "YES"
On true "On"

YAML 1.2 (guncel belirtim) bu zorla donusumlerin cogunu duzeltir, ancak bircok ayristirici hala varsayilan olarak 1.1 davranisini kullanir.

Norveç Sorunu icin gorsel metafor (Boolean vs String)

Girinti Hatalari

YAML ayristiriclari tutarsiz girintili dosyalari reddeder. Yaygin hatalar:

  • Sekme ve bosluklari karistirmak (YAML sekmeleri yasaklar)
  • Bir blokta 3 bosluk ve digerinde 2 kullanmak
  • Hizasiz liste ogeleri

AI Destekli Uretim

AgentBuilder gibi araclar yapilandirmayi duz Ingilizceyle anlatmaniza ve dogrulanmis YAML ciktisi almaniza olanak tanir. Bu “tanimla → uret → dogrula” dongusu hem girinti hatalarini hem de Norveç Sorunu’nu onlemeye yardimci olur.

Sonuc

Otomatik donusum icin yq -oy '.' file.toml kullanin. Manuel calisma icin, TOML tablolarini YAML girintisine eslestirin, dizileri tire onekli listelere donusturun ve boolean olarak yanlis anlasilabilecek dizgeleri her zaman tirnak icine alin. Herhangi bir donusumden sonra, dagitim oncesi YAML ciktisini dogrulayin — tek bir yanlis hizalanmis bosluk veya tirnaksiz bir NO tum boru hattinizi bozabilir.

SSS

YAML TOML gibi yorumlari destekler mi?

Evet. Her ikisi de tek satirlik yorumlar icin # kullanir. YAML yorumlari cok satirli dizgi ayristirmasini bozabilir, bu yuzden supheye dustugunuzde bunlari ayri satirlara yerlestirin.

YAML’de Norveç Sorunu nedir?

YAML 1.1’de, NO (Norveç ulke kodu) gibi ciltsiz dizgeler otomatik olarak boolean false degerine donusturulur. TOML bunu tum dize degerlerinde tirnak isaretini zorunlu kilarak onler. TOML’u YAML’e cevirirken, potansiyel olarak belirsiz olan herhangi bir dizeyi tirnak icine alin.

Hangi bicim derin ic ice gecmeyi daha iyi isler?

YAML. TOML her seviye icin [table.subtable.subsubtable] gibi uzun basliklarin tekrar edilmesini gerektirir, bu da fazla uzayabilir. YAML ayni hiyerarsiyi girinti ile temsil eder — daha kompakt ve derinliklerde daha okunabilir.

Comments

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir