ToolDeck के TOML टूल्स आपको TOML कॉन्फ़िगरेशन फ़ाइलों को सीधे अपने ब्राउज़र में फ़ॉर्मेट, सत्यापित और रूपांतरित करने देते हैं — कोई इंस्टॉलेशन नहीं, कोई खाता नहीं, और किसी सर्वर पर डेटा अपलोड नहीं होता। TOML Formatter आपके TOML इनपुट को पार्स करता है और एकसमान इंडेंटेशन, एकसमान कुंजी क्रम के साथ व्यवस्थित करता है। syntax की समस्याएं इनलाइन त्रुटियों के रूप में सटीक रूप से दर्शाई जाती हैं। TOML to JSON Converter, TOML दस्तावेज़ों को उनके JSON समकक्ष में बदलता है, जिसमें दिनांक-समय, इनलाइन तालिकाएं और array of tables जैसे डेटा प्रकार सुरक्षित रहते हैं। दोनों टूल पूरी तरह क्लाइंट-साइड पर चलते हैं। आपकी कॉन्फ़िगरेशन फ़ाइलें — जिनमें डेटाबेस क्रेडेंशियल, API एंडपॉइंट और deployment credentials होते हैं — आपकी मशीन पर ही रहती हैं। यदि आपको विपरीत दिशा में रूपांतरण चाहिए, तो JSON श्रेणी में JSON to TOML Converter उस कार्य को संभालता है।
TOML टूल्स क्या हैं?
TOML (Tom's Obvious, Minimal Language) एक कॉन्फ़िगरेशन फ़ाइल प्रारूप है जो स्पष्ट और सरल syntax पर आधारित है। GitHub के सह-संस्थापक Tom Preston-Werner द्वारा बनाया गया, TOML 2013 में जारी हुआ और जनवरी 2021 में इसका 1.0 specification स्थिर हुआ। यह प्रारूप सीधे एक hash table से मेल खाता है। प्रत्येक TOML फ़ाइल कुंजी-मान जोड़े तालिकाओं ([कोष्ठक] से चिह्नित खंड) में व्यवस्थित करती है। YAML के विपरीत, TOML संरचना के लिए इंडेंटेशन पर निर्भर नहीं करता, जिससे रिक्त स्थान संबंधी पार्सिंग त्रुटियां नहीं होतीं। JSON के विपरीत, TOML टिप्पणियों, मूल दिनांक/समय प्रकारों और बहु-पंक्ति स्ट्रिंग्स का समर्थन करता है। ये सुविधाएं कॉन्फ़िगरेशन फ़ाइलों के लिए ज़रूरी हैं, जो JSON में नहीं थीं।
TOML टूल्स TOML फ़ाइलों को पढ़ने, सत्यापित करने और रूपांतरित करने के दोहराए जाने वाले काम को आसान बनाते हैं। फ़ॉर्मेटिंग टूल इंडेंटेशन और कुंजी क्रम को सामान्य बनाते हैं ताकि कॉन्फ़िगरेशन फ़ाइलें पूरी टीम में पठनीय रहें, भले ही कई योगदानकर्ता एक ही फ़ाइल संपादित करें। रूपांतरण टूल TOML और JSON के बीच अनुवाद करते हैं, जो तब उपयोगी होता है जब कोई लाइब्रेरी या API JSON इनपुट चाहती है लेकिन आपका मूल स्रोत TOML कॉन्फ़िगरेशन है। सत्यापन syntax त्रुटियों को पकड़ता है — एक गुम समापन कोष्ठक, एक डुप्लीकेट कुंजी, या एक अमान्य दिनांक-समय शाब्दिक — इससे पहले कि वे एप्लिकेशन प्रारंभ होने पर विफलता का कारण बनें।
ये कार्य Rust परियोजनाओं में अक्सर आते हैं (जहां Cargo.toml पैकेज मैनिफेस्ट है), Python पैकेजिंग में (pyproject.toml ने PEP 518 और PEP 621 में setup.py को मानक बिल्ड कॉन्फ़िगरेशन के रूप में प्रतिस्थापित किया), Hugo स्टैटिक साइटों में (जो डिफ़ॉल्ट रूप से साइट कॉन्फ़िगरेशन के लिए TOML उपयोग करती है), और किसी भी infrastructure सेटअप में जो TOML फ़ाइलों में कॉन्फ़िगरेशन संग्रहीत करती है। TOML specification toml.io पर उपलब्ध है, और प्रत्येक प्रमुख प्रोग्रामिंग भाषा के लिए पार्सर उपलब्ध हैं।
ToolDeck पर TOML टूल्स क्यों उपयोग करें?
ToolDeck के TOML टूल्स JavaScript का उपयोग करके आपके ब्राउज़र टैब के अंदर सब कुछ पार्स और प्रोसेस करते हैं। कोई कॉन्फ़िगरेशन डेटा सर्वर को नहीं भेजा जाता, कोई खाता आवश्यक नहीं है, और प्रारंभिक पृष्ठ लोड के बाद टूल ऑफ़लाइन भी काम करते हैं।
🔒डिफ़ॉल्ट रूप से निजी
कॉन्फ़िगरेशन फ़ाइलों में अक्सर संवेदनशील मान होते हैं — डेटाबेस URL, API कुंजियाँ, deployment लक्ष्य। ToolDeck TOML को पूरी तरह क्लाइंट-साइड पर प्रोसेस करता है, इसलिए कुछ भी आपके ब्राउज़र से बाहर नहीं जाता। निजी परियोजनाओं और आंतरिक infrastructure कॉन्फ़िगरेशन के लिए सुरक्षित।
⚡झटपट नतीजे
TOML चिपकाएं, तुरंत फ़ॉर्मेट किया हुआ आउटपुट या JSON देखें। syntax त्रुटियां पंक्ति संख्या और विवरण के साथ रिपोर्ट की जाती हैं। CLI टूल इंस्टॉल होने या बिल्ड चरण पूरा होने की प्रतीक्षा नहीं करनी पड़ती।
🔄सटीक प्रकार रूपांतरण
TOML to JSON Converter, TOML-विशिष्ट प्रकारों जैसे ऑफसेट दिनांक-समय, स्थानीय तारीखें और स्थानीय समय को ISO 8601 स्ट्रिंग्स के रूप में सुरक्षित रखता है। पूर्णांक और फ़्लोट परिशुद्धता बनाए रखी जाती है। array of tables सही तरीके से JSON ऑब्जेक्ट arrays से मेल खाती हैं।
🌐कोई इंस्टॉलेशन आवश्यक नहीं
आधुनिक ब्राउज़र वाले किसी भी डिवाइस पर काम करता है। उपयोगी जब आप किसी ऐसी मशीन पर pull request की समीक्षा कर रहे हों जिसमें आपका सामान्य डेवलपमेंट environment न हो, या जब आपको किसी सहकर्मी की TOML फ़ाइल को जल्दी सत्यापित करना हो।
TOML टूल्स के उपयोग के मामले
TOML फ़ॉर्मेटिंग, सत्यापन और रूपांतरण विभिन्न भूमिकाओं और परियोजना प्रकारों में सामने आते हैं। Rust डेवलपर्स प्रतिदिन Cargo.toml के साथ काम करते हैं। Python डेवलपर्स pyproject.toml के माध्यम से बिल्ड और टूल्स को कॉन्फ़िगर करते हैं। DevOps इंजीनियर एप्लिकेशन कॉन्फ़िगरेशन प्रबंधित करते हैं जो TOML के रूप में वितरित होती है। नीचे दिए गए कार्य दिखाते हैं कि ब्राउज़र-आधारित TOML टूल्स अलग से स्क्रिप्ट लिखने या CLI टूल इंस्टॉल करने की तुलना में समय कहाँ बचाते हैं।
Cargo.toml की सफाई
कई निर्भरता जोड़ने के बाद, एक Rust परियोजना के Cargo.toml में असंगत फ़ॉर्मेटिंग है। कमिट करने से पहले इंडेंटेशन और कुंजी क्रम को सामान्य बनाने के लिए इसे
TOML Formatter से चलाएं।
pyproject.toml से JSON
एक CI पाइपलाइन को JSON प्रारूप में बिल्ड मेटाडेटा की आवश्यकता है, लेकिन मूल स्रोत pyproject.toml है।
TOML to JSON Converter का उपयोग करके JSON प्रतिनिधित्व तैयार करें और अपनी पाइपलाइन में रूपांतरण को स्क्रिप्ट करने से पहले मेल को सत्यापित करें।
कॉन्फ़िग माइग्रेशन
किसी एप्लिकेशन को JSON-आधारित कॉन्फ़िगरेशन से TOML में (या इसके विपरीत) स्थानांतरित करना।
TOML to JSON Converter आपको दोनों प्रतिनिधित्वों को एक-दूसरे के साथ तुलना करने देता है यह पुष्टि करने के लिए कि डेटा प्रकार, नेस्टेड संरचनाएं और array semantics सुरक्षित हैं।
syntax डीबगिंग
एक TOML कॉन्फ़िगरेशन फ़ाइल एप्लिकेशन प्रारंभ होने पर अस्पष्ट त्रुटि संदेश के साथ पार्स करने में विफल रहती है। syntax त्रुटि के लिए विशिष्ट पंक्ति और स्तंभ संख्या तथा पार्सर ने क्या अपेक्षा की थी उसका विवरण प्राप्त करने के लिए इसे
TOML Formatter में चिपकाएं।
दस्तावेज़ीकरण निर्माण
TOML और JSON दोनों प्रारूपों में कॉन्फ़िगरेशन उदाहरण शामिल करने वाला दस्तावेज़ीकरण लिखना।
TOML to JSON Converter के माध्यम से मानक TOML उदाहरण को रूपांतरित करें ताकि मैन्युअल प्रतिलिपि के बिना दोनों संस्करण समन्वित रहें।
TOML syntax सीखना
TOML में नए डेवलपर्स
TOML Formatter में TOML लिखकर, वास्तविक समय में सत्यापन त्रुटियां देखकर और संरचना की फ़ॉर्मेट किए आउटपुट से तुलना करके प्रारूप के साथ प्रयोग कर सकते हैं। यह अकेले specification पढ़ने से तेज़ है।
TOML डेटा प्रकार संदर्भ
TOML v1.0 निम्नलिखित डेटा प्रकार परिभाषित करता है। प्रत्येक प्रकार JSON में रूपांतरित होने पर एक विशिष्ट प्रतिनिधित्व से मेल खाता है। नीचे दी गई तालिका प्रत्येक TOML प्रकार के लिए syntax, उदाहरण और रूपांतरण व्यवहार को कवर करती है।
| प्रकार | syntax | उदाहरण | JSON मेल |
|---|
| String | "..." या '...' | name = "TOML" | JSON स्ट्रिंग। बेसिक स्ट्रिंग्स एस्केप अनुक्रमों (\n, \t, \u) का समर्थन करती हैं। शाब्दिक स्ट्रिंग्स ('...') बैकस्लैश को शाब्दिक वर्णों के रूप में मानती हैं। |
| Integer | अंक, 0x, 0o, 0b | port = 8080 | JSON संख्या। हेक्स (0xDEAD), ऑक्टल (0o755), बाइनरी (0b1010), और अंडरस्कोर विभाजक (1_000) का समर्थन करता है। |
| Float | . या e के साथ अंक | pi = 3.14159 | JSON संख्या। inf, -inf, और nan का समर्थन करता है (JSON में null या स्ट्रिंग के रूप में मेल खाता है, क्योंकि JSON में कोई NaN नहीं है)। |
| Boolean | true / false | enabled = true | JSON बूलियन। केवल लोअरकेस true और false मान्य हैं। |
| Offset Date-Time | RFC 3339 | 2024-01-15T09:30:00Z | JSON स्ट्रिंग (ISO 8601)। टाइमज़ोन ऑफसेट शामिल है। JSON में कोई मूल दिनांक-समय प्रकार नहीं है। |
| Local Date-Time | date T time | 2024-01-15T09:30:00 | JSON स्ट्रिंग। कोई टाइमज़ोन जानकारी नहीं। घड़ी के समय के लिए उपयोगी। |
| Local Date | YYYY-MM-DD | 2024-01-15 | JSON स्ट्रिंग। समय घटक के बिना तारीख। |
| Local Time | HH:MM:SS | 09:30:00 | JSON स्ट्रिंग। तारीख या टाइमज़ोन के बिना समय। |
| Array | [value, ...] | ports = [8080, 8443] | JSON array। TOML v1.0 में arrays mixed type हो सकती हैं लेकिन v0.5 में एक ही type की होनी चाहिए। |
| Table | [name] या इनलाइन {...} | [database] | JSON ऑब्जेक्ट। मानक तालिकाएं [कोष्ठक] उपयोग करती हैं। इनलाइन तालिकाएं एकल पंक्ति पर कर्ली ब्रेसेज़ उपयोग करती हैं। |
TOML v1.0.0 specification (toml.io) वर्तमान स्थिर संस्करण है। array of tables दोहराई जाने वाली तालिका प्रविष्टियां परिभाषित करने के लिए [[दोहरे कोष्ठक]] उपयोग करती हैं, जो JSON ऑब्जेक्ट arrays से मेल खाती हैं।
सही TOML टूल कैसे चुनें
ToolDeck में तीन टूल हैं जो TOML फ़ाइलों के साथ काम करते हैं। दो TOML श्रेणी में हैं, और एक JSON श्रेणी में विपरीत रूपांतरण दिशा के लिए है। अपने कार्य के अनुसार उपयुक्त टूल चुनें।
- 1
यदि आपको यह करना है TOML फ़ाइल को पुनः इंडेंट करना, कुंजी क्रम सामान्य बनाना, या पंक्ति-स्तरीय त्रुटि रिपोर्टिंग के साथ TOML syntax सत्यापित करना → TOML Formatter - 2
यदि आपको यह करना है किसी TOML कॉन्फ़िगरेशन फ़ाइल को API, स्क्रिप्ट या JSON इनपुट अपेक्षित करने वाले टूल्स में उपयोग के लिए JSON में बदलना → TOML to JSON Converter - 3
यदि आपको यह करना है किसी JSON दस्तावेज़ को उन परियोजनाओं के लिए TOML प्रारूप में बदलना जो अपने कॉन्फ़िगरेशन मानक के रूप में TOML उपयोग करती हैं → JSON to TOML Converter
रोज़मर्रा के TOML कार्य के लिए, TOML Formatter एकल चरण में फ़ॉर्मेटिंग और सत्यापन संभालता है — अपना TOML चिपकाएं, और यह या तो स्वच्छ आउटपुट देगा या आपको बताएगा कि syntax त्रुटि ठीक कहां है। जब आपको TOML और JSON के बीच convert करने की जरूरत हो, TOML to JSON Converter दिनांक-समय और नेस्टेड तालिकाओं सहित सभी TOML डेटा प्रकार सुरक्षित रखता है। विपरीत दिशा (JSON से TOML) के लिए, JSON श्रेणी में JSON to TOML Converter उपयोग करें। यदि आप ऐसे कॉन्फ़िगरेशन को डीबग कर रहे हैं जो पार्स होने में विफल रहता है, TOML Formatter से शुरू करें: इसके त्रुटि संदेशों में पंक्ति संख्या और अपेक्षित-टोकन विवरण शामिल हैं जो अधिकांश एप्लिकेशन-स्तरीय TOML पार्सर्स की तुलना में अधिक विशिष्ट हैं।
अक्सर पूछे जाने वाले प्रश्न
TOML और YAML में क्या अंतर है?
TOML तालिकाओं के लिए स्पष्ट कोष्ठक syntax उपयोग करता है और संरचना के लिए इंडेंटेशन पर निर्भर नहीं करता। YAML पदानुक्रम परिभाषित करने के लिए इंडेंटेशन उपयोग करता है, जो इसे रिक्त स्थान त्रुटियों के प्रति संवेदनशील बनाता है — एक गलत जगह का स्पेस पार्स की गई संरचना को पूरी तरह बदल सकता है। TOML में मूल दिनांक/समय प्रकार भी हैं और डुप्लीकेट कुंजियां प्रतिबंधित हैं, जबकि YAML चुपचाप अंतिम मान उपयोग करता है जब कोई कुंजी दो बार प्रकट हो। TOML आमतौर पर एप्लिकेशन कॉन्फ़िगरेशन के लिए पसंद किया जाता है, जबकि YAML Kubernetes मैनिफेस्ट और CI/CD पाइपलाइन परिभाषाओं में अधिक सामान्य है जहां इसके बहु-दस्तावेज़ समर्थन और एंकर/उपनाम उपयोगी होते हैं।
TOML और JSON में क्या अंतर है?
JSON एक डेटा विनिमय प्रारूप है जो मशीन-से-मशीन संचार के लिए बनाया गया है। TOML एक कॉन्फ़िगरेशन प्रारूप है जो मनुष्यों द्वारा पढ़ने और संपादित करने के लिए बनाया गया है। TOML टिप्पणियों (# से शुरू होने वाली पंक्तियां), मूल दिनांक-समय प्रकारों, बहु-पंक्ति स्ट्रिंग्स और तालिकाओं का समर्थन करता है जो नेस्टिंग की गहराई कम करती हैं। JSON टिप्पणियों का समर्थन नहीं करता, कोई दिनांक प्रकार नहीं है, और कर्ली ब्रेसेज़ के साथ स्पष्ट नेस्टिंग आवश्यक है। API पेलोड और डेटा भंडारण के लिए JSON सही विकल्प है; उन कॉन्फ़िगरेशन फ़ाइलों के लिए TOML सही विकल्प है जिन्हें मनुष्य हाथ से संपादित करते हैं।
क्या TOML सभी JSON डेटा संरचनाओं का प्रतिनिधित्व कर सकता है?
TOML अधिकांश JSON संरचनाओं का प्रतिनिधित्व कर सकता है, लेकिन कुछ edge cases हैं। TOML शून्य मानों का समर्थन नहीं करता — JSON null का कोई TOML समकक्ष नहीं है। TOML कुंजियां स्ट्रिंग्स होनी चाहिए, जो JSON ऑब्जेक्ट कुंजियों से मेल खाती हैं। TOML v0.5 में arrays एक ही type तक सीमित थीं, लेकिन TOML v1.0 मिश्रित-प्रकार arrays की अनुमति देता है। गहरी नेस्टेड JSON ऑब्जेक्ट TOML में विस्तृत हो सकती हैं क्योंकि प्रत्येक नेस्टिंग स्तर के लिए अलग तालिका हेडर आवश्यक होता है।
कौन सी परियोजनाएं कॉन्फ़िगरेशन के लिए TOML उपयोग करती हैं?
Rust की Cargo बिल्ड प्रणाली अपने पैकेज मैनिफेस्ट के रूप में Cargo.toml उपयोग करती है। Python ने PEP 518 (2016) और PEP 621 (2020) के माध्यम से pyproject.toml को मानक बिल्ड कॉन्फ़िगरेशन फ़ाइल के रूप में अपनाया। Hugo, स्टैटिक साइट जनरेटर, डिफ़ॉल्ट रूप से साइट कॉन्फ़िगरेशन के लिए TOML उपयोग करता है। InfluxDB अपने सर्वर कॉन्फ़िगरेशन के लिए TOML उपयोग करता है। Go मॉड्यूल प्रणाली ने TOML पर विचार किया था लेकिन अपना प्रारूप चुना; हालांकि, कई Go परियोजनाएं BurntSushi/toml और pelletier/go-toml जैसी लाइब्रेरियों के माध्यम से एप्लिकेशन-स्तरीय कॉन्फ़िगरेशन के लिए अभी भी TOML उपयोग करती हैं।
TOML टिप्पणियां कैसे संभालता है?
TOML # वर्ण का उपयोग करके पूर्ण-पंक्ति और पंक्ति-अंत टिप्पणियों का समर्थन करता है। # से पंक्ति के अंत तक सब कुछ पार्सर द्वारा अनदेखा किया जाता है। बहु-पंक्ति बेसिक स्ट्रिंग्स या बहु-पंक्ति शाब्दिक स्ट्रिंग्स के अंदर टिप्पणियां नहीं आ सकतीं। TOML को JSON में रूपांतरित करते समय, टिप्पणियां हटा दी जाती हैं क्योंकि JSON में कोई टिप्पणी syntax नहीं है। इसका अर्थ है कि TOML से JSON और वापस TOML का एक चक्र मूल फ़ाइल की सभी टिप्पणियां खो देगा।
TOML में array of tables क्या हैं?
array of tables एक ही तालिका संरचना की दोहराई जाने वाली प्रविष्टियां परिभाषित करने के लिए [[दोहरे कोष्ठक]] syntax उपयोग करती हैं। उदाहरण के लिए, [[servers]] दो बार प्रकट होने पर दो सर्वर ऑब्जेक्ट वाली एक array बनाता है। JSON में, यह ऑब्जेक्ट की array से मेल खाता है। array of tables आमतौर पर dependencies, सर्वर परिभाषाओं या प्लगइन कॉन्फ़िगरेशन की सूचियों के लिए उपयोग की जाती हैं जहां प्रत्येक प्रविष्टि में कुंजियों का एक ही समूह होता है।
क्या TOML रिक्त स्थान के प्रति संवेदनशील है?
TOML इंडेंटेशन के प्रति संवेदनशील नहीं है। इंडेंटेशन सिर्फ पठनीयता के लिए है और पार्सिंग को प्रभावित नहीं करता। हालांकि, TOML के लिए कुंजी-मान युग्मों को अलग करने के लिए नई पंक्तियों की आवश्यकता होती है — आप एक ही पंक्ति पर दो कुंजी-मान युग्म नहीं रख सकते (इनलाइन तालिकाओं के अंदर को छोड़कर)। इनलाइन तालिकाएं एकल पंक्ति पर होनी चाहिए और नई पंक्तियां नहीं हो सकतीं। यह डिज़ाइन YAML फ़ाइलों में सामान्य इंडेंटेशन-आधारित त्रुटियों से बचाता है।
JSON में रूपांतरित करते समय TOML दिनांक-समय मानों का क्या होता है?
JSON में कोई मूल दिनांक-समय प्रकार नहीं है, इसलिए TOML दिनांक-समय को ISO 8601 स्ट्रिंग्स में बदला जाता है। ऑफसेट दिनांक-समय (जैसे 2024-01-15T09:30:00Z) स्ट्रिंग प्रतिनिधित्व में अपना टाइमज़ोन ऑफसेट बनाए रखते हैं। स्थानीय दिनांक-समय, स्थानीय तारीखें और स्थानीय समय प्रत्येक को टाइमज़ोन जानकारी के बिना स्ट्रिंग के रूप में serialize किया जाता है। यह रूपांतरण इस अर्थ में अपरिवर्तनीय है कि मूल मान स्ट्रिंग से वापस पार्स किया जा सकता है, लेकिन JSON उपभोक्ता को यह जानना होगा कि इन स्ट्रिंग्स को मनमाने पाठ की बजाय तारीखों के रूप में मानना है।