YAML फ़ॉर्मेटर कैसे इस्तेमाल करें
- YAML पेस्ट करें।
- इंडेंटेशन, कलेक्शन स्टाइल और quoting चुनें।
- बताई गई कोई भी गलती ठीक करें और साफ़ डॉक्यूमेंट कॉपी करें।
YAML फ़ॉर्मेटर की खूबियाँ
- YAML 1.2 पार्स करता है और सिंटैक्स की गलतियाँ लाइन, कॉलम व अंश के साथ बताता है
- 2 या 4 स्पेस इंडेंटेशन और एकसमान quoting के साथ दोबारा लिखता है
- कलेक्शन के लिए block या flow स्टाइल, वैकल्पिक की-सॉर्टिंग
- कई डॉक्यूमेंट वाली स्ट्रीम (---) समर्थित हैं
- डुप्लिकेट कीज़ और alias bomb पकड़ता है
- Kubernetes manifest, Docker Compose, GitHub Actions और OpenAPI फ़ाइलों के लिए बढ़िया
YAML फ़ॉर्मेटर का उदाहरण
इंडेंटेशन को सामान्य करना
इनपुट:
services:
web:
image: nginx
ports: [ "80:80" ]आउटपुट:
services:
web:
image: nginx
ports:
- "80:80"YAML फ़ॉर्मेटर के बारे में अक्सर पूछे जाने वाले सवाल
क्या यह कमेंट रखता है?
नहीं। डॉक्यूमेंट पार्स करके दोबारा लिखा जाता है, इसलिए कमेंट और anchor हल हो जाते हैं। इसे इंडेंटेशन और quoting सामान्य करने के लिए इस्तेमाल करें, कमेंट-भरी फ़ाइलों के लिए नहीं।
कौन-सी गलतियाँ बताई जाती हैं?
लाइन और कॉलम के साथ सिंटैक्स की गलतियाँ, डुप्लिकेट कीज़, ग़लत इंडेंटेशन और बिना बंद किए कोट्स। एरर अंश आसपास की लाइनें दिखाता है।
क्या मैं कई डॉक्यूमेंट वाली फ़ाइल फ़ॉर्मेट कर सकता हूँ?
हाँ। --- से अलग किए गए डॉक्यूमेंट अलग-अलग फ़ॉर्मेट होते हैं और फिर --- सेपरेटर के साथ जोड़ दिए जाते हैं।
मेरी "yes"/"no" या "1.0" वैल्यू क्यों बदल गईं?
वे बदली नहीं — फ़ॉर्मेटर वैल्यू YAML 1.2 core schema में लिखता है, इसलिए जो स्ट्रिंग वरना boolean या संख्या समझी जातीं, उन्हें कोट में रखकर उनका टाइप बचाया जाता है।
तकनीकी नोट्स
Formatting yaml पैकेज से parse-and-re-emit है: parseAllDocuments strict mode, uniqueKeys और merge के साथ चलता है, फिर हर दस्तावेज़ JSON-safe वैल्यू बनकर lineWidth 0 के साथ दोबारा छपता है। इसीलिए anchor, alias और << merge key सादी कॉपी बन जाते हैं, !!timestamp और !!binary ISO 8601 और base64 स्ट्रिंग बनते हैं, explicit tag हटते हैं, और 2^53 − 1 से बड़े integer गोल होते हैं। 1.2 core schema में yes/no/on/off स्ट्रिंग ही रहते हैं।
parse और print के बीच दस्तावेज़ JavaScript object बनता है, इसलिए integer जैसी key (0, 1…) कोट होकर बिना sorting भी बढ़ते क्रम में आगे खिसक जाती हैं; 'Sort keys' UTF-16 code unit से क्रम लगाता है, यानी uppercase पहले। Block sequence parent key के नीचे indent होते हैं, multi-line स्ट्रिंग | literal block बनती हैं, 'Flow style' पूरा दस्तावेज़ एक लाइन में समेटता है, और stream --- से जुड़ती है (ख़ाली दस्तावेज़ null छपता है)।