सामग्री पर जाएँ
हिन्दी
कारीगर की मेज़ऐसे औज़ार जो कुछ भी अपलोड नहीं करते
ODERSA संस्था का एक कारख़ानाकुछ बाहर नहीं जाता, कुछ सहेजा नहीं जाता, कुछ हम तक नहीं पहुँचता।

कारख़ाना · Markdown से HTML

इसे कैसे इस्तेमाल करें : Markdown से HTML

आपकी लिखाई का हर HTML चिह्न एस्केप कर दिया जाता है, बिना किसी अपवाद के: आपके Markdown में लिखी कोई स्क्रिप्ट दिखती हुई बाहर आती है, चलने लायक़ कभी नहीं। यह स्पेसिफ़िकेशन से भी सख़्त है, और जो औज़ार ऐसी फ़ाइल लौटाता है जिसे कोई खोलेगा, उसके लिए यही अकेला महफ़ूज़ बर्ताव है।

औज़ार खोलें

इस औज़ार का वादा छोटा है, और वह लिखा हुआ है: Markdown के संदर्भ स्पेसिफ़िकेशन में पाँच सौ से ज़्यादा अनुरूपता के उदाहरण हैं। हम पाँच सौ नहीं बनाते। हम वह हिस्सा बनाते हैं जो लोग सचमुच लिखते हैं, और पन्ना उसे एक-एक रचना गिनाकर बताता है, ताकि चिपकाने से पहले आपको पता हो कि क्या बदलेगा और क्या नहीं।

सुरक्षा पर सिद्धांत की एक बारीकी, जिसका ठीक होना ज़रूरी है। स्पेसिफ़िकेशन Markdown दस्तावेज़ में कच्चा HTML चलने देता है, और हमने उसके पाठ में जाँच लिया कि वह कहीं भी बनाने वालों से यह नहीं कहता कि वे अपना नतीजा छानकर साफ़ करें: “नतीजे को किसी सफ़ाई करने वाले से गुज़ार दें” वाली हिदायत कुछ लाइब्रेरियों के दस्तावेज़ों से आती है, मानक से नहीं। इसलिए हम उसे मानक के नाम नहीं चढ़ाएँगे।

हमारा चुनाव इससे सीधा और सख़्त है: आपकी लिखाई का हर HTML चिह्न एस्केप कर दिया जाता है। आपके Markdown में लिखा कोई टैग नतीजे में दिखता हुआ बाहर आता है, चालू कभी नहीं। और लिंक के ख़तरनाक पते नाम लेकर मना कर दिए जाते हैं, लिंक की लिखाई सादे पाठ की तरह बची रहती है और स्क्रीन पर इसकी सूचना दी जाती है, उस खुली सिफ़ारिश के मुताबिक़ कि पते वाले किसी गुण में सिर्फ़ http और https ही चलने दिए जाएँ।

इसे कैसे इस्तेमाल करें

  1. अपना Markdown चिपकाएँ। वह आपके डिवाइस से बाहर नहीं जाता।
  2. अगर किसी पन्ने में डालने वाले टुकड़े के बजाय अपने आप में पूरी HTML फ़ाइल चाहिए तो “पूरा पन्ना” पर टिक लगाएँ।
  3. नतीजा कॉपी कर लें या डाउनलोड कर लें। कोई पता मना हुआ हो तो तालिका उसका नाम बता देती है।

चलने वाले फ़ॉर्मैट

जो हिस्सा बदला जाता है: हैश वाले और नीचे लकीर वाले शीर्षक, पैराग्राफ़, गाढ़ा, तिरछा, काटा हुआ, जस का तस कोड, अपनी भाषा के साथ चौखटे में बंद कोड, बुलेट और नंबर वाली सूचियाँ, एक के अंदर एक उद्धरण, आड़ी लकीरें, अपने शीर्षक के साथ लिंक और तस्वीरें, और पंक्ति के अंत में दो जगहें छोड़कर बनाया गया पक्का पंक्ति-भंग। तालिकाएँ, पाद-टिप्पणियाँ और परिभाषा सूचियाँ नहीं बदली जातीं: वे मूल स्पेसिफ़िकेशन का हिस्सा नहीं हैं।

Markdown फ़ॉर्मैट वाली लिखाई

200,000 अक्षरों तक। नतीजा HTML में आता है, या तो टुकड़े के रूप में या अपने आप में पूरे पन्ने के रूप में।

अनुकूलता की तालिका देखें

इसकी सीमाएँ

स्पेसिफ़िकेशन का एक हिस्सा भर, जो ऊपर गिनाया हुआ है

संदर्भ स्पेसिफ़िकेशन में पाँच सौ से ज़्यादा अनुरूपता के उदाहरण हैं, और उनमें से बहुत सारे ऐसी हालतों के हैं जो कोई कभी लिखता ही नहीं: चार तहों तक धँसी हुई सूचियाँ अपने आगे बढ़ाव के साथ, आगे कहीं जाकर तय किए गए लिंक संदर्भ, अंकों वाली HTML इकाइयाँ। पाँच सौ हालतें बनाना और जाँचना अपने आप में एक पूरा प्रोजेक्ट होता। हमें ठीक-ठीक बता देना बेहतर लगता है कि क्या चलता है: यह छोटा वादा है, और यह निभाया जाता है।

आपके Markdown में लिखा HTML एस्केप कर दिया जाता है, कभी कॉपी नहीं होता

स्पेसिफ़िकेशन उसे चलने देता है, पर जो औज़ार ऐसी HTML फ़ाइल बनाता है जिसे खोला जाना है उसे सलामती चुननी ही पड़ती है: किसी से मिले Markdown में सरकाई हुई स्क्रिप्ट चल जाती। इसलिए हर HTML चिह्न दिखती हुई लिखाई बन जाता है। यह जान लेना ज़रूरी है: आपने किसी ख़ास असर के लिए जानबूझकर कोई टैग लगाया हो, तो वह नतीजे में खुला दिखेगा, और यह जानबूझकर है।

सिर्फ़ http, https, mailto वाले और सापेक्ष पते ही रखे जाते हैं

Markdown का लिंक किसी भी स्कीम का पता ढो सकता है, उन स्कीमों समेत जो क्लिक पर कोड चला देती हैं। पन्ने में घुसाई गई स्क्रिप्टों पर OWASP की खुली सिफ़ारिशें कहती हैं कि पते वाले गुण में सिर्फ़ http और https चलने दिए जाएँ। औज़ार इसी नियम पर चलता है, लिंक की लिखाई बचा रखता है, और मना किया हुआ पता एक तालिका में गिना देता है: उसे चुपचाप हटा देना आपको यह भरम दे जाता कि लिंक चल रहा है।

तालिकाएँ नहीं बदली जातीं

खड़ी लकीरों वाली तालिका की लिखावट बहुत चलने वाला जोड़ है, पर वह मूल स्पेसिफ़िकेशन का हिस्सा नहीं है: हर सॉफ़्टवेयर उसे थोड़ा अलग सँभालता है, ख़ासकर सिरे मिलाने और ख़ाली ख़ानों पर। ऐसी तालिका लौटाने के बजाय जो आपके रोज़ के प्लेटफ़ॉर्म वाली तालिका से अलग निकले, हम उसे बनाते ही नहीं।

इस औज़ार के बारे में सवाल

क्या मेरी लिखाई कहीं भेजी जाती है?

नहीं। तीस सेकंड में जाँच लें: F12 कुंजी से इंस्पेक्टर खोलें, “Network” वाला टैब खोलें, सूची ख़ाली कर दें, फिर अपना Markdown चिपकाएँ और बदलें। एक भी पंक्ति नहीं आती। अपना इंटरनेट काटकर दोबारा करें: पार्सर इसी पन्ने में लिखा है।

मेरा HTML टैग नतीजे में खुला क्यों दिखता है?

क्योंकि आपकी लिखाई का हर HTML चिह्न एस्केप कर दिया जाता है, बिना किसी अपवाद के। Markdown का स्पेसिफ़िकेशन कच्चा HTML चलने देता है, पर जो औज़ार ऐसी फ़ाइल बनाता है जिसे कोई खोलेगा, वह ऐसी लिखाई से आया टैग कॉपी नहीं कर सकता जो उसने ख़ुद नहीं लिखी: किसी से मिले दस्तावेज़ में सरकाई हुई स्क्रिप्ट चल जाती। आपको कोई ख़ास टैग चाहिए तो उसे बदलाव के बाद, अपने एडिटर में, यह जानते हुए जोड़ें कि आप क्या कर रहे हैं।

मेरे एक लिंक पर अब क्लिक नहीं होता।

इसका मतलब है कि उसका पता ऐसी स्कीम इस्तेमाल करता है जो क्लिक पर कोड चलने देती है। औज़ार लिंक की लिखाई बचा रखता है, पता हटा देता है, और उसे एक तालिका में नाम लेकर बता देता है। यह लिंक ऐसे दस्तावेज़ से आया हो जो आपने ख़ुद नहीं लिखा, तो यह गंभीरता से लेने लायक़ जानकारी है। जो पते रखे जाते हैं वे http, https, mailto वाले, पन्ने के अंदर के लंगर और सापेक्ष पते हैं।

मेरी तालिकाएँ नहीं बदलतीं।

नहीं बदलतीं, और यह सीमाओं में लिखा है। खड़ी लकीरों वाली तालिका की लिखावट बहुत चलती है पर मूल स्पेसिफ़िकेशन में है ही नहीं, और हर सॉफ़्टवेयर उसे सिरे मिलाने तथा ख़ाली ख़ानों पर अलग तरह सँभालता है। ऐसी तालिका लौटाना जो आपके रोज़ के प्लेटफ़ॉर्म वाली जैसी न दिखे, इससे बुरा होता कि साफ़ कह दिया जाए कि हम यह नहीं करते।

क्या नतीजा स्पेसिफ़िकेशन के मुताबिक़ है?

जिस हिस्से का हम ऐलान करते हैं, उस पर वह उसके नियमों पर चलता है, उन नियमों समेत जिन्हें लोग अक्सर भूल जाते हैं: पंक्ति के अंत में दो जगहें छोड़कर बनने वाला पक्का पंक्ति-भंग, वह जस का तस कोड जो अपने अंदर के माल को हर दूसरे मतलब से बचा लेता है, और एक के अंदर एक बैठने वाले उद्धरण। बाकी सब पर हम कोई दावा नहीं करते: स्पेसिफ़िकेशन में पाँच सौ से ज़्यादा अनुरूपता के उदाहरण हैं, और हमने उन सबको आज़माया नहीं है। इसीलिए पन्ने के ऊपर किसी अनुरूपता के तमग़े के बजाय यह सूची लिखी है कि क्या-क्या चलता है।