TOML को YAML में बदलें

यहाँ आप TOML को YAML में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • बिना नुक़सान कुछ नहीं छोड़ा जाता। TOML में जो था, YAML में ठीक वही रहता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

मैनिफ़ेस्ट की वैल्यू पाइपलाइन तक पहुँचाना

किसी प्रोजेक्ट की बुनियादी बातें अब ज़्यादातर TOML फ़ाइल में रहती हैं — पैकेज का नाम, समर्थित संस्करण, फ़ीचर फ़्लैग। इन तथ्यों को खपाने वाली चीज़ें उतनी ही एकरूपता से YAML होती हैं: GitHub Actions वर्कफ़्लो, Helm values फ़ाइल, docker-compose ब्लॉक।

तो काम आम तौर पर माइग्रेशन नहीं, प्रतिलेखन है — वैल्यू को सही YAML सिंटैक्स में लाना, फिर ज़रूरी हिस्से किसी अपनी संरचना वाली फ़ाइल में ले जाना। नतीजे को वर्कफ़्लो होना ज़रूरी नहीं; बिना दोबारा टाइप किए उठाने लायक ईमानदार रेंडरिंग होना ज़रूरी है।

TOML की तारीख़ बिना कोट के आती है, लोडर तय करता है वह क्या है

TOML के पास असली date और datetime टाइप हैं, बिना कोट के लिखे: launch = 2026-03-01T08:00:00Z। YAML में भी वे बिना कोट के पहुँचते हैं — launch: 2026-03-01T08:00:00.000Z — जो YAML timestamp के लिए तय जगह है।

इसका फ़ायदा पूरी तरह लोडर पर निर्भर है। इसी लाइब्रेरी से नतीजा वापस पढ़ने पर, जो YAML 1.2 का पालन करती है, हर वैल्यू स्ट्रिंग बनकर लौटती है — 1.2 में कोई timestamp resolver नहीं। PyYAML जैसे YAML 1.1 लोडर से पढ़ने पर वे datetime बनती हैं, पर कुछ मामलों में ग़लत तरीक़े से।

तारीख़ों से भरे मैनिफ़ेस्ट के लिए XML की जगह YAML क्यों

दोनों लक्ष्य तारीख़ के लिए एक जैसे अक्षर लिखते हैं, इसलिए बहस इस पर है कि टाइप कहाँ रहता है। YAML में वैल्यू बिना कोट की और काफ़ी हद तक ख़ुद-बयाँ है। XML में वही तारीख़ एलिमेंट टेक्स्ट है, और उसका मतलब किसी और के रखे स्कीमा से आता है।

यह दोनों तरफ़ काम करता है। स्कीमा एक जाँच तंत्र है, और अगर पाने वाले सिस्टम के पास स्कीमा है, ग़लत टाइप की तारीख़ दरवाज़े पर ही पकड़ी जाती है। YAML चुनिए जब लक्ष्य ख़ुद अपने लोडर से वैल्यू वापस पढ़ेगा।

TOML की टेबल YAML बनते वक़्त कैसे बिछती हैं

[package] हेडर एक शीर्ष-स्तर की-वैल्यू बनकर उसके नीचे दो-स्पेस इंडेंट होता है। [tool.black] हेडर tool: के भीतर black: बनकर सेटिंग रखता है, क्योंकि डॉट वाला टेबल हेडर वाक़ई नेस्टिंग है, बस डॉट वाला नाम नहीं।

क्रम वही है जो पार्सर ने देखा — TOML में यह मतलब है कि फ़ाइल की ऊपरी ढीली वैल्यू पहले आती हैं, फिर हर टेबल उसी क्रम में जिसमें वह लिखी गई थी।

TOML अपने टाइप घोषित करता है, YAML उन्हें तय करता है

यह असली बदलाव है और नज़र से चूक जाता है क्योंकि आउटपुट काफ़ी मिलता-जुलता दिखता है। TOML में enabled = true एक बूलियन है क्योंकि सिंटैक्स यही कहता है। YAML में बिना कोट का scalar वह है जो पार्सर तय करे।

writer वहीं कोट लगाता है जहाँ मायने रखे: version = "1.0" कोट रहता है ताकि यह नंबर 1 न बन जाए। NO, yes, on और off को कोट नहीं करता क्योंकि YAML 1.2 में ये सादी स्ट्रिंग हैं — पर YAML 1.1 पढ़ने वाले PyYAML में ये बूलियन बन जाते हैं।

टेबल की सूचियाँ YAML की मैपिंग-सूची बनती हैं

दोहराया गया [[bin]] या [[tool.poetry.packages]] ब्लॉक TOML का record-list रूप है, और यह उसी शेप में बदलता है जो लोग हाथ से YAML में लिखते हैं: हर एंट्री के लिए एक डैश, उसके नीचे इंडेंट की गई की।

यह ब्लॉक फ़ॉर्म ही ज़्यादातर YAML औज़ार दिखाते हैं, इसलिए एंट्री आम तौर पर बिना दोबारा फ़ॉर्मैट किए किसी वर्कफ़्लो में चिपक जाती हैं।

लंबी TOML स्ट्रिंग ब्लॉक स्केलर बनकर आती है

ट्रिपल-कोट वाली TOML स्ट्रिंग जिसमें कोई स्क्रिप्ट या विवरण हो, अपनी लाइन-संरचना रखती है। writer इसे block scalar की तरह लिखता है — की, फिर एक पाइप, फिर असली लाइनें इंडेंट होकर।

लंबी सिंगल-लाइन वैल्यू लगभग अस्सी कॉलम पर फ़ोल्ड की जाती है, और YAML उन फ़ोल्ड को स्पेस की तरह वापस पढ़ता है, इसलिए वैल्यू बदलती नहीं।

दोनों फ़ॉर्मेट कमेंट रखते हैं, यह बदलाव एक भी नहीं

TOML और YAML दोनों # कमेंट देते हैं, और मैनिफ़ेस्ट अक्सर उनसे भरा होता है — कोई डिपेंडेंसी किसी पैच पर क्यों टिकी है। इनमें से कुछ भी नहीं बचता।

जिस फ़ाइल को उठाकर पेस्ट करना है उसके लिए यह मामूली है। जिसे रखना है उसके लिए यही वजह है कि TOML को सच्चाई का स्रोत रहने देना बेहतर है और YAML को जनरेट होने देना।

YAML की वे विशेषताएँ जो बदली गई TOML फ़ाइल कभी इस्तेमाल नहीं करेगी

आउटपुट भाषा का एक सादा हिस्सा इस्तेमाल करता है। कोई anchor और alias नहीं — दोहराई गई सब-टेबल पूरी तरह दो बार दिखती है, संदर्भ के साथ एक बार नहीं, क्योंकि पार्स की गई वैल्यू अलग-अलग ऑब्जेक्ट हैं। कहीं null नहीं, क्योंकि TOML में बदलने के लिए null है ही नहीं।

अगर लक्ष्य को इनमें से कुछ चाहिए, वह हाथ से जोड़ा जाता है। यह YAML की सीमा नहीं — मैनिफ़ेस्ट ने कभी वह बात कही ही नहीं थी।

भरोसा करने से पहले YAML वापस पढ़ना

सबसे सस्ती जाँच एक राउंड ट्रिप है। आउटपुट को उसी चीज़ से लोड कीजिए जो आख़िर में उसे लोड करेगी, और कुछ वैल्यू मिलाइए — संस्करण, कोई तारीख़, कोई नंबर जैसी दिखने वाली स्ट्रिंग।

yq eval . out.yaml दोबारा फ़ॉर्मैट करता है और सिंटैक्स त्रुटि होने पर बताता है। ऐसा एक बार करना उस पाइपलाइन को डिबग करने से तेज़ है जो version: 1 के साथ चली जबकि आपका मतलब "1.0" था।

TOML फ़ाइल कहाँ बदली जाती है

इसी ब्राउज़र टैब में, सादी JavaScript से। कुछ अपलोड नहीं होता, कोई इंजन नहीं उतारा जाता, न कोई खाता है न रोज़ की सीमा।

मैनिफ़ेस्ट इतने छोटे होते हैं कि 100 MB की फ़्री सीमा सैद्धांतिक है, पर ये हमेशा सार्वजनिक नहीं होते — किसी निजी रिपॉज़िटरी की डिपेंडेंसी सूची में आंतरिक पैकेज और रजिस्ट्री के नाम होते हैं। यहाँ बदलने से इनमें से कुछ भी उजागर नहीं होता।

TOML को YAML में ऐसे बदलें

  1. अपनी TOML फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में YAML चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार YAML फ़ाइल डाउनलोड कर लें।

TOML या YAML: क्या बदलता है

TOML और YAML की तुलना
TOMLYAML
पूरा नामTom's Obvious Minimal LanguageYAML Ain't Markup Language
फ़ाइल एक्सटेंशन.toml.yaml, .yml
मीडिया टाइपapplication/tomlapplication/yaml
पहली बार प्रकाशित20132001
विनिर्देशTOML 1.0YAML 1.2
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींकोई ब्राउज़र नहीं
इसकी जगह विचारणीयJSON, INIJSON

क्या बचा रहता है

कुछ नहीं खोता। TOML और YAML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

टिप्पणियाँ साथ जाती हैं। TOML और YAML — दोनों में टिप्पणी की वाक्य-रचना है, इसलिए बाद में फ़ाइल सँभालने वाले के लिए छोड़े गए नोट चुपचाप ग़ायब नहीं होते।

नतीजा खोलना

Visual Studio Code TOML और YAML — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।

कौन-सा फ़ॉर्मेट किस काम के लिए है

TOML 2013 में आया। यह TOML 1.0 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

YAML 2001 से चला आ रहा है, और YAML 1.2 में तय किया गया है। Visual Studio Code और yq इस फ़ॉर्मेट को पढ़ लेते है।

TOML से YAML: आम सवाल

क्या मेरी TOML फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।

क्या TOML को YAML में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।

TOML को YAML में बदलने पर क्या गुणवत्ता जाती है?

नहीं। YAML वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।

क्या TOML से YAML बिना नुक़सान का है?

कुछ नहीं खोता। TOML और YAML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।

इन फ़ॉर्मेट के बारे में और