ToolDeck'in TOML araçları, TOML yapılandırma dosyalarını doğrudan tarayıcınızda biçimlendirmenize, doğrulamanıza ve dönüştürmenize olanak tanır — kurulum, hesap veya herhangi bir sunucuya veri yükleme gerekmez. TOML Biçimleyici, TOML girdinizi ayrıştırır ve tutarlı girintileme, normalleştirilmiş anahtar sıralaması ve söz dizimi sorunlarını tam olarak gösteren satır içi doğrulama hataları ile yeniden serileştirir. TOML'dan JSON'a Dönüştürücü, TOML belgelerini JSON karşılıklarına dönüştürürken tarih-saat değerleri, satır içi tablolar ve tablo dizileri dahil veri tiplerini korur. Her iki araç da tamamen istemci tarafında çalışır; bu sayede genellikle veritabanı kimlik bilgileri, API uç noktaları ve dağıtım sırları içeren yapılandırma dosyalarınız makinenizde kalır. Ters dönüşüme ihtiyaç duyarsanız JSON kategorisindeki JSON'dan TOML'a Dönüştürücü bu işlemi gerçekleştirir.
TOML Araçları Nedir?
TOML (Tom's Obvious, Minimal Language), açık ve belirsizliğe yer bırakmayan bir söz dizimi üzerine inşa edilmiş bir yapılandırma dosyası biçimidir. GitHub'un kurucu ortağı Tom Preston-Werner tarafından oluşturulan TOML, ilk olarak 2013'te yayımlanmış ve Ocak 2021'de 1.0 spesifikasyonuna ulaşmıştır. Biçim, bir karma tablosuyla tam anlamıyla örtüşür: her TOML dosyası, [köşeli parantezlerle] işaretlenmiş tablolar halinde düzenlenmiş anahtar-değer çiftlerinden oluşan bir ağaç tanımlar. YAML'ın aksine TOML, yapı için girintiye dayanmaz; bu da beyaz boşlukla ilgili tüm bir ayrıştırma hatası sınıfını ortadan kaldırır. JSON'ın aksine TOML, yorumları, yerel tarih/saat tiplerini ve çok satırlı dizeleri destekler — yapılandırma dosyalarının ihtiyaç duyduğu ancak JSON'ın sağlamak üzere tasarlanmadığı özellikler.
TOML araçları, TOML dosyalarını okuma, doğrulama ve dönüştürme gibi mekanik işleri otomatikleştirir. Biçimlendirme araçları, girintilemeyi ve anahtar sıralamasını normalleştirir; böylece yapılandırma dosyaları birden fazla katkıda bulunan aynı dosyayı düzenlese bile ekip genelinde okunabilir kalır. Dönüştürme araçları, bir kütüphanenin veya API'nin JSON girişi beklediği ancak gerçeğin kaynağının TOML yapılandırması olduğu durumlarda TOML ile JSON arasında çeviri yapar. Doğrulama, uygulama başlangıcında hatalara yol açmadan önce söz dizimi hatalarını — eksik kapanış parantezi, yinelenen anahtar veya geçersiz tarih-saat değeri — yakalar.
Bu görevler Rust projelerinde (Cargo.toml'un paket bildirimi olduğu durumlarda), Python paketlemesinde (pyproject.toml, PEP 518 ve PEP 621 ile standart derleme yapılandırması olarak setup.py'nin yerini almıştır), Hugo statik sitelerinde (varsayılan olarak site yapılandırması için TOML kullanır) ve yapılandırmayı TOML dosyalarında saklayan her türlü altyapı kurulumunda sıklıkla karşımıza çıkar. TOML spesifikasyonu toml.io adresinde yönetilmektedir ve tüm büyük programlama dilleri için ayrıştırıcılar mevcuttur.
Neden ToolDeck'te TOML Araçları Kullanmalısınız?
ToolDeck'in TOML araçları, her şeyi JavaScript kullanarak tarayıcı sekmesinde ayrıştırır ve işler. Hiçbir yapılandırma verisi sunucuya iletilmez, hesap gerekmez ve araçlar ilk sayfa yüklemesinin ardından çevrimdışı çalışır.
🔒Varsayılan olarak gizli
Yapılandırma dosyaları genellikle hassas değerler içerir — veritabanı URL'leri, API anahtarları, dağıtım hedefleri. ToolDeck, TOML'ı tamamen istemci tarafında işler; dolayısıyla hiçbir şey tarayıcınızı terk etmez. Tescilli projeler ve dahili altyapı yapılandırmaları için güvenlidir.
⚡Anında geri bildirim
TOML yapıştırın, hemen biçimlendirilmiş çıktıyı veya JSON'ı görün. Söz dizimi hataları satır numaraları ve açıklamalarıyla raporlanır. Bir CLI aracının kurulmasını veya bir derleme adımının tamamlanmasını beklemenize gerek yoktur.
🔄Doğru tip dönüşümü
TOML'dan JSON'a Dönüştürücü, zaman dilimli tarih-saat, yerel tarih ve yerel saat gibi TOML'a özgü tipleri ISO 8601 dizeleri olarak korur. Tam sayı ve ondalık hassasiyeti korunur. Tablo dizileri, JSON nesne dizilerine doğru şekilde eşlenir.
🌐Kurulum gerektirmez
Modern tarayıcısı olan her cihazda çalışır. Olağan geliştirme ortamınız olmayan bir makinede pull request incelemesi yaparken veya bir meslektaşınızın TOML dosyasını hızlıca doğrulamanız gerektiğinde kullanışlıdır.
TOML Araçları Kullanım Senaryoları
TOML biçimlendirme, doğrulama ve dönüştürme, farklı roller ve proje türlerinde karşılaşılan görevlerdir. Rust geliştiricileri her gün Cargo.toml ile çalışır. Python geliştiricileri, pyproject.toml aracılığıyla derlemeleri ve araçları yapılandırır. DevOps mühendisleri, TOML olarak gönderilen uygulama yapılandırmalarını yönetir. Aşağıdaki görevler, tarayıcı tabanlı TOML araçlarının tek seferlik bir betik yazmaya veya bir CLI aracı yüklemeye kıyasla zaman kazandırdığı durumları göstermektedir.
Cargo.toml temizliği
Birkaç bağımlılık eklemesini birleştirdikten sonra bir Rust projesinin Cargo.toml dosyası tutarsız biçimlendirmeye sahip olabilir. Kayıt yapmadan önce girintileme ve anahtar sıralamasını normalleştirmek için
TOML Biçimleyici'den geçirin.
pyproject.toml'dan JSON'a
Bir CI pipeline'ı JSON biçiminde derleme meta verisi gerektiriyor ancak gerçeğin kaynağı pyproject.toml. JSON gösterimini oluşturmak ve dönüşümü pipeline'ınıza eklemeden önce eşlemeyi doğrulamak için
TOML'dan JSON'a Dönüştürücü'yü kullanın.
Yapılandırma geçişi
Bir uygulamayı JSON tabanlı yapılandırmadan TOML'a (veya tersine) taşıma.
TOML'dan JSON'a Dönüştürücü, veri tiplerinin, iç içe yapıların ve dizi anlambiliminin korunduğunu doğrulamak için iki gösterimi yan yana karşılaştırmanıza olanak tanır.
Söz dizimi hata ayıklama
Uygulama başlangıcında belirsiz bir hata mesajıyla ayrıştırılamayan bir TOML yapılandırma dosyası. Söz dizimi hatası için belirli satır ve sütun numaralarını ve ayrıştırıcının ne beklediğine dair bir açıklama almak için
TOML Biçimleyici'ye yapıştırın.
Belge oluşturma
Hem TOML hem de JSON biçimlerinde yapılandırma örnekleri içeren belgeler yazma. Manuel aktarım yapmadan her iki sürümü eşzamanlı tutmak için kurallı TOML örneğini
TOML'dan JSON'a Dönüştürücü üzerinden geçirin.
TOML söz dizimini öğrenme
TOML'a yeni başlayan geliştiriciler,
TOML Biçimleyici'ye TOML yazarak, gerçek zamanlı doğrulama hatalarını görerek ve yapıyı biçimlendirilmiş çıktıyla karşılaştırarak biçimle denemeler yapabilir. Bu yöntem, yalnızca spesifikasyonu okumaktan çok daha hızlıdır.
TOML Veri Tipleri Referansı
TOML v1.0, aşağıdaki veri tiplerini tanımlar. Her tip, JSON'a dönüştürüldüğünde belirli bir gösterimle eşleşir. Aşağıdaki tablo her TOML tipi için söz dizimini, örnekleri ve dönüşüm davranışını kapsar.
| Tip | Söz Dizimi | Örnek | JSON eşlemesi |
|---|
| Dize | "..." veya '...' | name = "TOML" | JSON dizesi. Temel dizeler kaçış dizilerini destekler (\n, \t, \u). Değişmez dizeler ('...') ters eğik çizgileri değişmez karakter olarak kabul eder. |
| Tam Sayı | basamaklar, 0x, 0o, 0b | port = 8080 | JSON sayısı. Onaltılık (0xDEAD), sekizlik (0o755), ikili (0b1010) ve alt çizgi ayırıcıları (1_000) destekler. |
| Ondalık | basamaklar, . veya e ile | pi = 3.14159 | JSON sayısı. inf, -inf ve nan değerlerini destekler (JSON'da null veya dizeye eşlenir; JSON'ın NaN karşılığı yoktur). |
| Boolean | true / false | enabled = true | JSON boolean. Yalnızca küçük harfli true ve false geçerlidir. |
| Zaman Dilimli Tarih-Saat | RFC 3339 | 2024-01-15T09:30:00Z | JSON dizesi (ISO 8601). Saat dilimi farkını içerir. JSON'da yerel tarih-saat tipi yoktur. |
| Yerel Tarih-Saat | tarih T saat | 2024-01-15T09:30:00 | JSON dizesi. Saat dilimi bilgisi içermez. Duvar saati zamanları için kullanışlıdır. |
| Yerel Tarih | YYYY-MM-DD | 2024-01-15 | JSON dizesi. Saat bileşeni olmayan tarih. |
| Yerel Saat | HH:MM:SS | 09:30:00 | JSON dizesi. Tarih veya saat dilimi olmayan saat. |
| Dizi | [değer, ...] | ports = [8080, 8443] | JSON dizisi. TOML dizileri v1.0'da heterojen olabilir; ancak v0.5'te homojen olmak zorundaydı. |
| Tablo | tomlCategoryContent.r10Syntax | [database] | JSON nesnesi. Standart tablolar [köşeli parantez] kullanır. Satır içi tablolar tek bir satırda küme parantezi kullanır. |
TOML v1.0.0 spesifikasyonu (toml.io) mevcut kararlı sürümdür. Tablo dizileri, tekrarlanan tablo girişlerini tanımlamak için [[çift köşeli parantez]] kullanır ve JSON nesne dizilerine eşlenir.
Doğru TOML Aracını Nasıl Seçersiniz?
ToolDeck'te TOML dosyalarıyla çalışan üç araç bulunmaktadır. İkisi TOML kategorisinde, biri ise ters dönüşüm yönü için JSON kategorisindedir. Görevinize uygun aracı seçin.
- 1
İhtiyacınız olan işlem bir TOML dosyasını yeniden girintileme, anahtar sıralamasını normalleştirme veya satır düzeyinde hata raporlamasıyla TOML söz dizimini doğrulama → TOML Biçimleyici - 2
İhtiyacınız olan işlem bir TOML yapılandırma dosyasını JSON girişi bekleyen API'lerde, betiklerde veya araçlarda kullanmak üzere JSON'a dönüştürme → TOML'dan JSON'a Dönüştürücü - 3
İhtiyacınız olan işlem yapılandırma standardı olarak TOML kullanan projeler için bir JSON belgesini TOML biçimine dönüştürme → JSON'dan TOML'a Dönüştürücü
Günlük TOML çalışmaları için TOML Biçimleyici, biçimlendirme ve doğrulamayı tek adımda gerçekleştirir — TOML'ınızı yapıştırın; ya temiz bir çıktı üretir ya da söz dizimi hatasının tam olarak nerede olduğunu gösterir. TOML ile JSON arasında köprü kurmanız gerektiğinde TOML'dan JSON'a Dönüştürücü, tarih-saatler ve iç içe tablolar dahil tüm TOML veri tiplerini korur. Ters yön (JSON'dan TOML'a) için JSON kategorisindeki JSON'dan TOML'a Dönüştürücü'yü kullanın. Ayrıştırılamayan bir yapılandırmayı hata ayıklıyorsanız TOML Biçimleyici ile başlayın: hata mesajları, çoğu uygulama düzeyindeki TOML ayrıştırıcısının raporladığından daha belirgin satır numaraları ve beklenen belirteç açıklamaları içerir.
Sıkça Sorulan Sorular
TOML ile YAML arasındaki fark nedir?
TOML, tablolar için açık köşeli parantez söz dizimini kullanır ve yapı için girintiye dayanmaz. YAML, hiyerarşiyi tanımlamak için girintilemeyi kullanır; bu da onu beyaz boşluk hatalarına karşı duyarlı kılar — tek bir yanlış konumlandırılmış boşluk, ayrıştırılan yapıyı tamamen değiştirebilir. TOML ayrıca yerel tarih/saat tiplerine sahiptir ve yinelenen anahtarları yasaklar; YAML ise bir anahtar iki kez göründüğünde son değeri sessizce kullanır. TOML genellikle uygulama yapılandırması için tercih edilirken YAML, çok belgeli desteği ve çapa/takma adlarının faydalı olduğu Kubernetes bildirimleri ve CI/CD pipeline tanımlarında daha yaygındır.
TOML ile JSON arasındaki fark nedir?
JSON, makineden makineye iletişim için tasarlanmış bir veri değişim biçimidir. TOML ise insanların okuyup düzenlemesi için tasarlanmış bir yapılandırma biçimidir. TOML yorumları (#'le başlayan satırlar), yerel tarih-saat tiplerini, çok satırlı dizeleri ve iç içe geçme derinliğini azaltan tabloları destekler. JSON yorum desteği sunmaz, tarih tipi içermez ve açık iç içe geçme için küme parantezi gerektirir. JSON, API yükleri ve veri depolama için doğru tercihken TOML, insanların elle düzenlediği yapılandırma dosyaları için doğru tercihdir.
TOML, tüm JSON veri yapılarını temsil edebilir mi?
TOML, JSON yapılarının büyük çoğunluğunu temsil edebilir; ancak bazı sınır durumlar mevcuttur. TOML, null değerleri desteklemez — JSON null'ının TOML karşılığı yoktur. TOML anahtarlarının dize olması gerekir; bu, JSON nesne anahtarlarıyla örtüşür. TOML dizileri v0.5'te homojen tiplerle sınırlıydı; ancak TOML v1.0 karma tipli dizilere izin verir. Derin iç içe geçmiş JSON nesneleri, her iç içe geçme düzeyi ayrı bir tablo başlığı gerektirdiğinden TOML'da ayrıntılı hale gelebilir.
Hangi projeler yapılandırma için TOML kullanır?
Rust'ın Cargo derleme sistemi, paket bildirimi olarak Cargo.toml kullanır. Python, PEP 518 (2016) ve PEP 621 (2020) aracılığıyla pyproject.toml'ı standart derleme yapılandırma dosyası olarak benimsemiştir. Statik site oluşturucu Hugo, varsayılan olarak site yapılandırması için TOML kullanır. InfluxDB, sunucu yapılandırması için TOML kullanır. Go modül sistemi TOML'ı değerlendirmiş ancak kendi biçimini seçmiştir; bununla birlikte, pek çok Go projesi BurntSushi/toml ve pelletier/go-toml gibi kütüphaneler aracılığıyla uygulama düzeyindeki yapılandırmalar için hâlâ TOML kullanmaktadır.
TOML yorumları nasıl işler?
TOML, # karakterini kullanarak tam satır yorumlarını ve satır sonu yorumlarını destekler. #'ten satırın sonuna kadar olan her şey ayrıştırıcı tarafından görmezden gelinir. Yorumlar, çok satırlı temel dizelerin veya çok satırlı değişmez dizelerin içinde yer alamaz. TOML'dan JSON'a dönüştürme sırasında yorumlar silinir; çünkü JSON'da yorum söz dizimi yoktur. Bu, TOML'dan JSON'a ve tekrar TOML'a yapılan bir dönüşümün özgün dosyadaki tüm yorumları kaybedeceği anlamına gelir.
TOML'da tablo dizileri nedir?
Tablo dizileri, aynı tablo yapısının tekrarlanan girişlerini tanımlamak için [[çift köşeli parantez]] söz dizimini kullanır. Örneğin iki kez görünen [[servers]], iki sunucu nesnesi içeren bir dizi oluşturur. JSON'da bu, bir nesne dizisine eşlenir. Tablo dizileri, her girişin aynı anahtar kümesine sahip olduğu bağımlılık listeleri, sunucu tanımları veya eklenti yapılandırmaları için yaygın olarak kullanılır.
TOML beyaz boşluğa duyarlı mıdır?
TOML, girintilemeye duyarlı değildir. Girintileme tamamen kozmetiktir ve ayrıştırmayı etkilemez. Bununla birlikte TOML, anahtar-değer çiftlerini ayırmak için yeni satır karakterleri gerektirir — iki anahtar-değer çiftini aynı satıra koyamazsınız (satır içi tablolar dışında). Satır içi tablolar tek bir satıra sığmalıdır ve yeni satır içeremez. Bu tasarım, YAML dosyalarında yaygın olan girintileme tabanlı hataları önler.
JSON'a dönüştürme sırasında TOML tarih-saat değerlerine ne olur?
JSON'ın yerel tarih-saat tipi olmadığından TOML tarih-saat değerleri ISO 8601 dizelerine dönüştürülür. Zaman dilimli tarih-saatler (2024-01-15T09:30:00Z gibi), dize gösteriminde saat dilimi farkını korur. Yerel tarih-saatler, yerel tarihler ve yerel saatler, saat dilimi bilgisi olmaksızın ayrı ayrı dize olarak serileştirilir. Dönüşüm, orijinal değerin diziden geri ayrıştırılabilmesi anlamında kayıpsızdır; ancak JSON tüketicisinin bu dizeleri rastgele metin yerine tarih olarak değerlendirdiğini bilmesi gerekir.