आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप YAML को INI में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
YAML से INI
INI में समूह बनाने का बिल्कुल एक स्तर है: कोष्ठक में लिखा सेक्शन और उसके भीतर की कुँजियाँ। YAML में जितनी चाहे उतनी indent गहराई हो सकती है। बदलाव पूरे पेड़ पर चलकर हर मान के लिए एक dotted पथ बनाता है, फिर हर पथ को एक बार तोड़ता है — पहले बिंदु से पहले का हिस्सा सेक्शन बनता है, बाक़ी कुँजी।
तो database नाम की एक YAML mapping, जिसके भीतर pool है, जिसके भीतर timeout है, database नाम का सेक्शन और pool.timeout नाम की कुँजी बनाती है। दस्तावेज़ का हर मान बचता है; सिर्फ़ आकार चला जाता है। दूसरी तरफ़ का पार्सर सिर्फ़ बिंदु वाली सपाट कुँजियाँ देखता है और यह जानने का कोई तरीक़ा नहीं होता कि कौन-सा बिंदु nesting था और कौन-सा नाम का हिस्सा।
YAML sequence का INI में कोई बराबर नहीं, इसलिए हर आइटम अपने इंडेक्स के नाम वाली कुँजी बनता है। तीन कमांड की सूची के तौर पर लिखी बिल्ड स्क्रिप्ट job सेक्शन के भीतर script.0, script.1 और script.2 बनकर आती है, उसी क्रम में जिसमें वे लिखी गई थीं।
क्रम बचता है, यही मायने रखता है, पर यह रिवाज़ हमारा है, कोई मानक नहीं। कुछ INI पार्सर नंबर वाली कुँजी को सूची के तौर पर समझते हैं, ज़्यादातर नहीं समझते, और कुछ दोहराई गई कुँजी का नाम माँगते हैं। फ़ाइल पढ़ने वाला प्रोग्राम इनका क्या करता है, यह भरोसा करने से पहले जाँच लीजिए।
दस्तावेज़ के ऊपरी स्तर की सूची के पास नंबर देने के लिए कोई कुँजी नहीं होती, इसलिए वह उस कुँजी के नाम का सेक्शन बन जाती है जो उसे रखे थी, 0, 1 और 2 उसकी कुँजियों के तौर पर। जिस YAML फ़ाइल की stages कुँजी में दो प्रविष्टियाँ हों, वह stages नाम के सेक्शन के भीतर कुँजी 0 और कुँजी 1 बनाती है।
संख्याओं से भरा सेक्शन क़ानूनी INI है और पढ़ने वाले को अजीब लगता है। अगर मंज़िल वाला प्रोग्राम एक कुँजी में कॉमा से बँटी सूची चाहता है — जो सूची के लिए आम INI रिवाज़ है — तो सूची को बदलने से पहले YAML में या बाद में INI में जोड़ दीजिए। कोई सेटिंग यह ख़ुद नहीं करेगी, क्योंकि दोनों रिवाज़ एक साथ सही नहीं हो सकते।
एक YAML block scalar — pipe चिह्न के बाद indent किया हुआ हिस्सा, जिसमें हर CI फ़ाइल अपनी शेल स्क्रिप्ट रखती है — एक ही स्ट्रिंग में बदल जाता है जिसके भीतर नई लाइनें हैं। पहले यह लेखक उस स्ट्रिंग को बिल्कुल वैसे ही लिख देता था, तो नई लाइनें असली लाइन-ब्रेक बन जाती थीं, और वापस पढ़ने पर वे लाइनें छूट जाती थीं।
अब लेखक कई-लाइन वाले मान को उद्धरण-चिह्न में लपेटता है और हर ब्रेक को बैकस्लैश और n के तौर पर लिखता है, इसलिए स्क्रिप्ट एक लाइन पर रहती है, एक ही प्रविष्टि रहती है, और इसी कन्वर्टर से बिना बदले वापस आती है। जो नहीं बदला वह मंज़िल है: INI की अलग-अलग बोलियाँ escape को लेकर असहमत हैं, और जो पार्सर बैकस्लैश को सामान्य कैरेक्टर माने वह आपकी स्क्रिप्ट उन्हीं दो कैरेक्टर के साथ लौटाएगा।
ख़ाली YAML मान बराबर के चिह्न के बाद कुछ न होने वाली कुँजी बन जाता है। INI के पास null और ख़ाली स्ट्रिंग में फ़र्क़ करने का कोई तरीक़ा नहीं, इसलिए स्रोत में जो दो अलग चीज़ें थीं वे नतीजे में एक जैसी हो जाती हैं।
`---` से बँटी कई-दस्तावेज़ वाली YAML फ़ाइल नहीं बदलती — पार्सर वहीं रुक जाता है, कोई चुनाव नहीं करता, क्योंकि INI फ़ाइल एक ही सेटिंग-समूह बताती है। फ़ाइल बाँटकर जो दस्तावेज़ चाहिए उसे अलग से बदलिए।
नहीं। YAML पार्सर और INI लिखने वाला दोनों इसी पन्ने की JavaScript हैं, इसलिए कॉन्फ़िग आपकी मशीन कभी नहीं छोड़ता।
| YAML | INI | |
|---|---|---|
| पूरा नाम | YAML Ain't Markup Language | INI कॉन्फ़िगरेशन |
| फ़ाइल एक्सटेंशन | .yaml, .yml | .ini, .cfg, .conf |
| मीडिया टाइप | application/yaml | text/plain |
| पहली बार प्रकाशित | 2001 | 1985 |
| विनिर्देश | YAML 1.2 | — |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | पुराना, फिर भी हर जगह पढ़ा जाता है |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | JSON, TOML | TOML |
टिप्पणियाँ साथ जाती हैं। YAML और INI — दोनों में टिप्पणी की वाक्य-रचना है, इसलिए बाद में फ़ाइल सँभालने वाले के लिए छोड़े गए नोट चुपचाप ग़ायब नहीं होते।
Visual Studio Code YAML और INI — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
YAML 2001 में आया। यह YAML 1.2 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
INI 1985 से चला आ रहा है। Notepad और Visual Studio Code इस फ़ॉर्मेट को पढ़ लेते है।
INI 1985 में आया और YAML 2001 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
YAML और INI सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। INI में एक के अंदर एक होता ही नहीं। एक स्तर से गहरी संरचनाएँ चपटी होकर बिंदु वाली कुंजियाँ बन जाती हैं।
कन्वर्ज़न के लिए नहीं: वह उसी ब्राउज़र में होता है जो आपने पहले से खोल रखा है। नतीजा खोलने के लिए उसके बाद वही प्रोग्राम चाहिए जिससे आपका डिवाइस INI Configuration आम तौर पर दिखाता है।