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

YAML पेस्ट करें, फ़ॉर्मैट से 2-स्पेस इंडेंटेशन में सजाएं, वैलिडेट से सिंटैक्स जांचें। YAML 1.2 सख्त मोड। कोई अपलोड नहीं।

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

js-yaml के YAML 1.2 सख़्त मोड में आपके YAML को पार्स करता है और 2-स्पेस इंडेंटेशन, 100-कॉलम लाइन चौड़ाई और सुसंगत कोटिंग के साथ इसे फिर से एमिट करता है। वैलिडेट बटन इनपुट बदले बिना सिंटैक्स जांचता है और पहली त्रुटि रिपोर्ट करता है। आउटपुट इनपुट से अर्थपूर्ण रूप से समतुल्य है — मान, प्रकार और संरचना सुरक्षित हैं।

उदाहरण

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

name:    Ada
tags: [math,logic]
active:true

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

name: Ada
tags:
  - math
  - logic
active: true

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

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

  • स्पेस के बजाय टैब। YAML 1.2 इंडेंटेशन के लिए टैब निषिद्ध करता है। हर टैब को स्पेस से बदलें।
  • असंगत इंडेंट स्तर। 4 स्पेस इंडेंटेड भाई के तहत 2 स्पेस इंडेंटेड बच्चा विफल होगा। एक इंडेंट चौड़ाई चुनें और लगातार उपयोग करें।
  • बूलियन फंदे। YAML 1.1 (यहाँ का मोड नहीं) में `yes`, `no`, `on`, `off` बूलियन के रूप में पार्स होते थे। js-yaml 1.2 का उपयोग करता है, लेकिन पुराने व्यवहार पर निर्भर वास्तविक इनपुट उपयोगकर्ताओं को आश्चर्यचकित करते हैं। अस्पष्ट मानों को कोट करें: `country: "NO"`।
  • बिना कोट के विशेष अक्षर। `:`, `?`, `&`, `*`, `!`, `|`, `>`, `\'`, `"`, `%`, `@`, `` ` `` से शुरू होने वाले मानों को कोट करना ज़रूरी है।
  • अनसमाप्त कोट। गायब बंद कोट पार्सर को बाकी फ़ाइल को स्ट्रिंग के हिस्से के रूप में अवशोषित करने पर बाध्य करता है। रिपोर्ट किया गया लाइन नंबर वास्तविक त्रुटि से बहुत दूर हो सकता है।
  • एंकर / एलियास बेमेल। अघोषित एंकर `&name` का संदर्भ देने वाला एलियास `*name` त्रुटि उठाता है। सत्यापित करें कि हर एलियास का मेल खाता एंकर पहले घोषित है।
अक्सर पूछे जाने वाले प्रश्न

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

नहीं — केवल व्हाइटस्पेस, कोटिंग, और प्रतिनिधित्व विवरणों का क्रम। पार्स किया गया मान ग्राफ़ समान है। फ़ॉर्मैट किया हुआ YAML मूल जैसी ही इन-मेमोरी संरचना में फिर से पार्स होता है।

क्या फ़ॉर्मैटिंग के दौरान टिप्पणियाँ सुरक्षित रहती हैं?

नहीं। js-yaml पार्स-और-डंप राउंड-ट्रिप के माध्यम से टिप्पणियों को बनाए नहीं रखता। टिप्पणी-संरक्षित YAML फ़ॉर्मैटिंग के लिए, एक भिन्न लाइब्रेरी (विकल्पों के साथ yaml.js, या `prettier --parser yaml` जैसा CLI टूल) का उपयोग करें।

क्या मैं इंडेंटेशन को कस्टमाइज़ कर सकता हूँ?

वर्तमान बिल्ड 2-स्पेस इंडेंटेशन का उपयोग करता है। कस्टमाइज़ करने के लिए, कमांड लाइन पर js-yaml चलाएँ — वही लाइब्रेरी — और `{ indent: 4 }` या जो आपको चाहिए वह पास करें।

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

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

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

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

क्या यह डुप्लिकेट कुंजियों जैसी स्टाइल समस्याओं के लिए लिंट करता है?

js-yaml डिफ़ॉल्ट कॉन्फ़िग में डुप्लिकेट कुंजियाँ अस्वीकार करता है (एक YAML 1.2 सख़्त आवश्यकता)। असंगत कोटिंग या एंकर नामकरण जैसी अन्य स्टाइल समस्याएँ फ़्लैग नहीं की जातीं — इसके लिए yamllint जैसा समर्पित लिंटर चाहिए।