TOML फ़ॉर्मैटर और वैलिडेटर

TOML पेस्ट करें, फ़ॉर्मैट से TOML 1.0 कैनॉनिकल लेआउट में सजाएं, वैलिडेट से सिंटैक्स जांचें। कोई अपलोड नहीं।

  1. अपना TOML बाएँ टेक्स्ट एरिया में पेस्ट करें।
  2. फ़ॉर्मैट क्लिक करें ताकि @iarna/toml के माध्यम से राउंड-ट्रिप होकर कैनोनिकल लेआउट निकले।
  3. वैलिडेट क्लिक करें इनपुट संशोधित किए बिना सिंटैक्स जांचने के लिए।
  4. त्रुटियाँ गलत पंक्ति और कॉलम बताती हैं।
यह क्या करता है?

@iarna/toml के TOML 1.0 मोड में आपके TOML को पार्स करता है और कैनोनिकल लेआउट के साथ इसे फिर से एमिट करता है — कुंजियाँ सब-टेबलों से पहले, सुसंगत कोटिंग, इन्टीजर अंडरस्कोर हटाए हुए। वैलिडेट बटन इनपुट बदले बिना स्पेक के विरुद्ध सिंटैक्स जांचता है। टिप्पणियाँ राउंड-ट्रिप में हटा दी जाती हैं (TOML फ़ॉर्मैटर आम तौर पर पार्स-डंप चक्र के माध्यम से इन्हें सुरक्षित नहीं रख सकते)।

उदाहरण

अव्यवस्थित TOML इनपुट:

[server]
host="localhost"
port=8080

name="myapp"

फ़ॉर्मैट किया आउटपुट:

name = "myapp"

[server]
host = "localhost"
port = 8080

सामान्य TOML त्रुटियाँ और कैसे ठीक करें

TOML 1.0 के नियम YAML या JSON से ज़्यादा सख़्त हैं। नीचे के पैटर्न ज़्यादातर पार्सर विफलताओं को कवर करते हैं।

  • बिना कोट की स्ट्रिंग। `name = Ada` अमान्य है। डबल कोट का उपयोग करें: `name = "Ada"`।
  • टेबल को फिर से परिभाषित करना। `[a]` को दो बार परिभाषित करना त्रुटि है। प्रत्येक टेबल हेडर अधिकतम एक बार दिख सकता है। कुंजियों को एकल `[a]` ब्लॉक में मर्ज करें।
  • टेबल के बाद टॉप-लेवल कुंजियाँ। एक बार जब आप `[section]` लिख देते हैं, तो सभी बाद की कुंजियाँ उस सेक्शन की होती हैं। कुंजियाँ अपने पहले टेबल हेडर से पहले आनी चाहिए। फ़ॉर्मैटर इसे आपके लिए पुनःक्रमित करता है, पर कच्चा इनपुट पहले से ही मान्य होना चाहिए।
  • बिना समय क्षेत्र के डेटटाइम। `d = 2026-04-26T12:00:00` (कोई Z या ऑफ़सेट नहीं) "स्थानीय डेटटाइम" है। यह पार्स होती है, पर JSON-शैली के उपभोक्ता इसकी स्थानीयता को प्रस्तुत नहीं कर सकते। UTC के लिए `2026-04-26T12:00:00Z` का उपयोग करें।
  • इनलाइन टेबल विस्तार। इनलाइन टेबल `point = {x=1, y=2}` बंद और स्व-निहित हैं। आप बाद में `point.z = 3` नहीं लिख सकते। विस्तार के लिए मानक `[point]` ब्लॉक सिंटैक्स का उपयोग करें।
  • ट्रिपल-कोट एस्केप भ्रम। `"""..."""` (बेसिक मल्टी-लाइन) एस्केप प्रोसेस करता है; `\'\'\'...\'\'\'` (लिटरल मल्टी-लाइन) नहीं। दोनों को मिलाना सबसे आम मल्टी-लाइन स्ट्रिंग त्रुटि है।
अक्सर पूछे जाने वाले प्रश्न

क्या फ़ॉर्मैट मेरा डेटा बदलता है?

केवल लेआउट — कुंजियाँ पुनःक्रमित होकर प्रिमिटिव्स को सब-टेबलों से पहले रखा जाता है (एक TOML नियम), स्पेसिंग सामान्यीकृत होती है, इन्टीजर अंडरस्कोर हटाए जाते हैं (TOML शब्दार्थ)। मान स्वयं अपरिवर्तित हैं।

क्या TOML टिप्पणियाँ संरक्षित हैं?

नहीं। @iarna/toml पार्स-डंप राउंड-ट्रिप के दौरान टिप्पणियाँ छोड़ देता है। टिप्पणी-संरक्षित फ़ॉर्मैटिंग के लिए आपको स्रोत स्थिति जानकारी बनाए रखने वाली एक भिन्न लाइब्रेरी की आवश्यकता होगी।

क्या यह TOML 1.0 के विरुद्ध सत्यापित करता है?

हाँ। @iarna/toml TOML 1.0 का पालन करता है — मिश्रित-प्रकार ऐरे, डॉटेड कुंजियाँ और संशोधित स्ट्रिंग नियमों की अनुमति सहित। TOML 0.5-केवल व्यवहार पर निर्भर इनपुट (एकसमान ऐरे आवश्यक) यहाँ भी पार्स होंगे, पर सख़्त 0.5 पार्सरों पर टूट सकते हैं।

यह कितनी बड़ी TOML फ़ाइल संभाल सकता है?

टेक्स्ट एरिया धीमा होने से पहले लगभग 30 MB तक। अधिकांश कॉन्फ़िग फ़ाइलें 1 MB से काफ़ी कम होती हैं।

क्या मेरा TOML अपलोड होता है?

नहीं। सब कुछ आपके ब्राउज़र में चलता है — आपका इनपुट इस पेज के JavaScript द्वारा पार्स और पुनः-सीरियलाइज़ होता है और कभी किसी सर्वर पर नहीं भेजा जाता।

फ़ॉर्मैटर मेरी कुंजियाँ क्यों पुनःक्रमित करता है?

TOML 1.0 की आवश्यकता है कि एक ही दायरे में टॉप-लेवल कुंजियाँ (प्रिमिटिव्स) किसी भी टेबल हेडर से पहले दिखें। फ़ॉर्मैटर प्रिमिटिव्स को सब-टेबलों के आगे सॉर्ट करके इसे लागू करता है। यदि आपके मूल इनपुट का क्रम भिन्न था, तो फ़ॉर्मैट चरण इसे सामान्य कर देता है।