YAML सत्यापक और फ़ॉर्मेटर
फ़ॉर्मेटjs-yaml से YAML को सत्यापित, सामान्य या संक्षिप्त करें। इंडेंटेशन और उद्धरण चिह्न ठीक करता है और बहु-दस्तावेज़ (---) प्रवाह विभाजित करता है। शुद्ध YAML प्रसंस्करण — कोई फ़ॉर्मेट रूपांतरण नहीं।
दूरस्थ URL लाए नहीं जाते; अपना JSON सीधे पेस्ट करें।
इस पृष्ठ पर
YAML फ़ॉर्मेटर क्या है?#
एक YAML फ़ॉर्मेटर ऐसी कॉन्फ़िग फ़ाइल को लेता है जो भटक गई है — टैब स्पेसेस के साथ मिली हुई, असंगत इंडेंट कदम, कहीं उपयोग किए गए कोट्स और कहीं नहीं, कोई ऐसा एंकर जिसे किसी ने परिभाषित किया और कभी पुनः उपयोग नहीं किया — और उसे एक साफ़, सुनिश्चित आकार में नॉर्मलाइज़ करता है। यह उस चीज़ को भी पकड़ता है जिसके लिए YAML कुख्यात है: एक ऐसा दस्तावेज़ जो ठीक दिखता है और चुपचाप कुछ और मतलब रखता है, क्योंकि YAML व्हाइटस्पेस-संवेदनशील है और इसमें इस बारे में अंतर्निहित नियमों का भरा पूरा है कि कोई खाली शब्द क्या मतलब रखता है।
यह पेज आपके YAML को पार्स करता है और इसे नियंत्रित तरीके से js-yaml से दोबारा निकालता है। फ़ॉर्मेट आपके द्वारा चुने कदम (2 या 4 स्पेस) के साथ पुनः-इंडेंट करता है, लाइन फ़ोल्डिंग बंद करता है ताकि हर वैल्यू अपनी पंक्ति पर बैठे, और किसी भी एंकर और एलियास को सादे दोहराए गए कंटेंट में फैलाता है ताकि आउटपुट पूरी तरह स्व-निहित हो। संक्षिप्त उसी डेटा को फ़्लो नोटेशन — {a: 1, b: [2, 3]} — में दोबारा डंप करता है, जो YAML के पास कॉम्पैक्ट रूप के लिए सबसे करीब है, क्योंकि YAML JSON या CSS की तरह अपनी व्हाइटस्पेस मिटा नहीं सकता। आप जो भी मोड चुनें, पहले दस्तावेज़ पार्स होता है, इसलिए जहाँ स्पेस होना चाहिए वहाँ टैब या अनुगामी स्पेस वाला कोलन अपनी पंक्ति और स्तंभ के साथ रिपोर्ट होता है बजाय चुपचाप गलत डेटा संरचना निकालने के।
इसका उपयोग कैसे करें#
- अपना YAML बाईं ओर इनपुट पैनल में चिपकाएँ। प्लेसहोल्डर एक न्यूनतम दस्तावेज़ दिखाता है, या नमूना पर क्लिक करें।
- टूलबार पर कोई मोड बटन चुनें:
- फ़ॉर्मेट — पुनः-इंडेंट, लाइन फ़ोल्डिंग अक्षम, एंकर/एलियास फैलाएँ, और हर संग्रह को ब्लॉक शैली में निकालें।
- संक्षिप्त — हर संग्रह को यथासंभव कम पंक्तियों पर फ़्लो शैली में निकालें। फ़्लो संग्रह स्पष्ट होने के कारण इंडेंटेशन प्रासंगिक नहीं रहता।
- फ़ॉर्मेट मोड में, कोई इंडेंट चुनें: 2 या 4 स्पेस।
- वैकल्पिक रूप से कोई कोट शैली चुनें: स्वतः (केवल तब कोट करें जब किसी स्केलर को वास्तव में ज़रूरत हो — डिफ़ॉल्ट), सिंगल, या डबल। यह उन स्केलर्स पर कोट कैरेक्टर नॉर्मलाइज़ करता है जिन्हें कोट किया जाना चाहिए; यह कभी ऐसे सादे वैल्यूज़ पर ज़बरदस्ती कोट नहीं लगाता जिन्हें ज़रूरत नहीं।
- परिणाम आउटपुट पैनल में पढ़ें। हेडर आउटपुट आकार दिखाता है; उसे लेने के लिए कॉपी का उपयोग करें। साफ़ करें दोनों पैनलों को रीसेट करता है।
यदि पार्सिंग विफल हो, तो स्थिति पट्टी समस्या की पंक्ति और स्तंभ रिपोर्ट करती है — js-yaml की YAML त्रुटियाँ एक स्थिति ढोती हैं, और यह पेज उसे सीधे सामने लाता है।
प्रमुख विशेषताएँ#
- एक ही पार्स से फ़ॉर्मेट और संक्षिप्त। दोनों मोड दस्तावेज़ को पहले सत्यापित करते हैं, इसलिए कोई संरचनात्मक त्रुटि एक स्थान के साथ एक बार रिपोर्ट होती है, इससे कोई फ़र्क नहीं पड़ता कि आपने कौन सा बटन दबाया।
- एंकर फैलाए गए।
&anchor/*aliasसंदर्भ हल होकर इनलाइन लिखे जाते हैं (noRefs), इसलिए आउटपुट कभी तीन स्क्रीन पहले परिभाषित नाम पर निर्भर नहीं। नतीजा एक स्व-निहित दस्तावेज़ है जिसे आप किसी को भी थमा सकते हैं। - कोई लाइन फ़ोल्डिंग नहीं। लंबे वैल्यूज़ किसी कॉलम सीमा पर नहीं लपेटे जाते (
lineWidth: -1), इसलिए हर वैल्यू ठीक एक पंक्ति घेरता है — डिफ़ करने और पढ़ने में आसान। - वैकल्पिक कोट नॉर्मलाइज़ेशन। दस्तावेज़ भर में कोट कैरेक्टर सुसंगत बनाने के लिए सिंगल या डबल कोट चुनें, या स्वतः पर छोड़ दें ताकि केवल वैल्यूज़ जिन्हें सच में कोटिंग चाहिए उन्हें मिले।
- मल्टी-डॉक्यूमेंट जागरूक।
---से अलग इनपुट कई दस्तावेज़ों के रूप में पार्स होता है और---सेपरेटर्स सुरक्षित रखते हुए दोबारा निकाला जाता है — Kubernetes मेनिफेस्ट्स और समान मल्टी-डॉक फ़ाइलों के लिए काम का। - YAML बमों के विरुद्ध बचाव। एक नेस्टिंग-गहराई सीमपथologically गहरे दस्तावेज़ों को कुछ खतरनाक में फैलने से रोकती है।
- सख्ती से क्लाइंट-साइड, 1 MB से ऊपर के इनपुट्स के लिए एक Web Worker के साथ ताकि पेज प्रतिक्रियाशील रहे।
कार्य उदाहरण#
एक सर्विस कॉन्फ़िग जिसमें एक पुनः उपयोग किया गया एंकर और थोड़ी असमान शैली है:
इनपुट:
service:
name: &name "api-gateway"
host: example.com
replicas: 3
id: *name
logging:
level: info
outputs: [{name: stdout}, {name: file}]
2 स्पेस और स्वतः कोट के साथ फ़ॉर्मेट पर क्लिक करें:
service:
name: api-gateway
host: example.com
replicas: 3
id: api-gateway
logging:
level: info
outputs:
- name: stdout
- name: file
दो दिखने वाली बातें हुईं। एंकर &name और एलियास *name दोनों साक्ष्य वैल्यू api-gateway में हल हो गए, इसलिए id अब एक सादा वैल्यू पढ़ता है और दस्तावेज़ एंकर पर निर्भर नहीं। और फ़्लो-शैली सूची [{name: stdout}, {name: file}] को एक ब्लॉक सूची के रूप में दोबारा लिखा गया, प्रति प्रविष्टि एक — स्कैन करने और किसी दूसरे संस्करण के विरुद्ध डिफ़ करने में कहीं आसान। उसी इनपुट पर संक्षिप्त पर क्लिक करें और वही डेटा फ़्लो रूप में लौटता है:
service: {name: api-gateway, host: example.com, replicas: 3, id: api-gateway}
logging: {level: info, outputs: [{name: stdout}, {name: file}]}
हर संग्रह अब इनलाइन है। बाइट गणना घटती है क्योंकि इंडेंटेशन और न्यूलाइन्स चले गए, पर अर्थ समान है — जो किसी व्हाइटस्पेस-संवेदनशील फ़ॉर्मेट के लिए संक्षिप्त का मतलब होना चाहिए।
अक्सर पूछे जाने वाले प्रश्न#
मेरे कमेंट्स कहाँ गए?#
js-yaml के ज़रिए YAML राउंड-ट्रिपिंग कमेंट्स पार्स करती है और उन्हें त्याग देती है — लाइब्रेरी में कोई कमेंट-प्रिज़र्विंग पुनः-डम्पर नहीं। कमेंट्स पार्सिंग के दौरान बर्दाश्त किए जाते हैं (वे कभी त्रुटि नहीं करते) पर आउटपुट में दिखाई नहीं। यदि कमेंट्स महत्वपूर्ण संदर्भ ढोती हैं तो अपनी मूल फ़ाइल को सत्य के स्रोत के रूप में रखें और इस औज़ार के आउटपुट को कैनोनिकल मशीन रूप मानें।
YAML के लिए फ़ॉर्मेट और संक्षिप्त में क्या अंतर है?#
फ़ॉर्मेट दस्तावेज़ को साफ़ ब्लॉक शैली में दोबारा लिखता है: नेस्टेड मैपिंग्स और सीक्वेंसेस आपके चुने कदम से इंडेंट, प्रति पंक्ति एक वैल्यू, कोई फ़ोल्डिंग नहीं। संक्षिप्त वही डेटा फ़्लो शैली में दोबारा लिखता है: एकल पंक्ति पर {key: value} और [a, b] संग्रह। दोनों पहले समान रूप से पार्स करते हैं; वे केवल इसमें भिन्न होते हैं कि डेटा वापस कैसे सीरियलाइज़ होता है।
यह YAML/JSON कन्वर्टर से कैसे अलग है?#
यह औज़ार YAML इन, YAML आउट है — यह किसी YAML दस्तावेज़ को नॉर्मलाइज़ या संक्षिप्त करता है और YAML वापस थमाता है। इस साइट पर YAML/JSON कन्वर्टर दोनों फ़ॉर्मेट्स के बीच अनुवाद करता है। इस पेज का उपयोग करें जब आप वही फ़ॉर्मेट चाहते हैं, बस बेहतर आकार में; कन्वर्टर का जब आप वास्तव में JSON चाहते हैं।
क्या मेरा YAML कहीं अपलोड होता है?#
नहीं। js-yaml पेज में बंडल है और आपके ब्राउज़र में चलता है। 1 MB से ऊपर के इनपुट्स के लिए पार्स एक Web Worker के अंदर होता है, पर फिर भी स्थानीय रूप से — कुछ भी आपके डिवाइस से बाहर नहीं जाता।