03 / गाइड
Markdown से HTML: एक साफ़ पब्लिशिंग वर्कफ़्लो
Markdown टिकाऊ स्रोत फ़ॉर्मैट क्यों बनाता है, सीमित कन्वर्टर असल में क्या सपोर्ट करता है, सैनिटाइज़ेशन और लिंक नियम आउटपुट को सुरक्षित कैसे रखते हैं, HTML राउंड ट्रिप क्या खोती है, और डॉक्स या ब्लॉग पाइपलाइन में रूपांतरण कहाँ बैठता है।
Markdown स्रोत क्यों है, एक्सपोर्ट क्यों नहीं
पब्लिशिंग पाइपलाइन को ऐसा मास्टर फ़ॉर्मैट चाहिए जो टूल, होस्ट और रीडिज़ाइन से बचकर रहे। सादा-टेक्स्ट Markdown वही मास्टर है: हर एडिटर में पठनीय, वर्शन कंट्रोल में डिफ़ करने योग्य, और इस साल जो भी HTML टेम्पलेट उसे रेंडर करे उससे स्वतंत्र।
इसे काम कराने वाला अनुशासन एक-दिशीय प्रवाह है: Markdown हाथ से एडिट होता है, HTML कन्वर्टर से बनता है, और कोई आउटपुट को मैन्युअली पैच नहीं करता। जिस क्षण एक्सपोर्ट किए HTML को हाथ से एडिट किया जाता है, दो मास्टर बन जाते हैं, और वे अलग होते जाएँगे।
- पोर्टेबलपोर्टेबिलिटी: Markdown फ़ाइल हर एडिटर में खुलती है और बिना माइग्रेशन प्रोजेक्ट के HTML, PDF, स्लाइड या दस्तावेज़ीकरण सिस्टम में बदल जाती है।
- डिफ़ करने योग्यरिव्यू करने की क्षमता: गद्य के बदलाव साफ़ लाइन डिफ़ के रूप में दिखते हैं, जबकि HTML मास्टर एक-शब्द के एडिट को टैग और एट्रिब्यूट के अंदर दफ़ना देता है।
- संरचना, स्टाइल नहींचिंताओं का बँटवारा: स्रोत संरचना रखता है — शीर्षक, सूचियाँ, उद्धरण — जबकि थीम टाइपोग्राफ़ी तय करती है, इसलिए रीडिज़ाइन कभी अभिलेख को नहीं छूता।
समर्थित सबसेट क्या बदलता है — और क्या चपटा हो जाता है
सुविचारित कन्वर्टर जानबूझकर सबसेट सपोर्ट करते हैं, क्योंकि हर समर्थित निर्माण किसी और ऐसे मार्कअप को घुसाने का एक और तरीका है जिसकी किसी ने समीक्षा नहीं की। रूपांतरण पर भरोसा करने से पहले जान लें कि आपका कंटेंट उस लकीर के किस पार है।
Markdown-से-HTML मोड में इमेज सिंटैक्स केवल alt टेक्स्ट रखता है, इमेज या उसका URL नहीं; raw HTML टेक्स्ट के रूप में escape होता है। HTML-से-Markdown मोड में पेस्ट की गई तालिका fenced text block बनती है और ग्रिड खो देती है। प्रकाशित करने से पहले आउटपुट जाँचें।
- साफ़ रूपांतरणसाफ़ बदलते हैं: छह स्तर तक के शीर्षक, पैराग्राफ़, बोल्ड, इटैलिक, स्ट्राइकथ्रू, इनलाइन कोड, फ़ेंस किए कोड ब्लॉक, क्रमित और अक्रमित सूचियाँ, ब्लॉक कोट, क्षैतिज रेखाएँ, और इनलाइन लिंक।
- ज्ञात क्षतियाँसमर्थित हिस्से से बाहर परिणाम रूपांतरण की दिशा पर निर्भर है: Markdown इमेज में सिर्फ़ alt टेक्स्ट बचता है, Markdown का raw HTML टेक्स्ट बनकर escape होता है, और HTML तालिका Markdown में लौटते समय fenced text block बनती है। फ़ुटनोट और टास्क सूची को बचा हुआ मानने के बजाय आउटपुट जाँचें।
- असली लेख परखेंपरीक्षण सरल है: कोई प्रतिनिधि लेख कन्वर्ट करें और आउटपुट पढ़ें। परिणाम से जो भी गायब है, वह कभी अनुबंध में था ही नहीं।
सैनिटाइज़ेशन प्रकाशन का हिस्सा है, अतिरिक्त नहीं
बदला हुआ HTML पेज में डाला जा सकता है, इसलिए टूल उसे डिफ़ॉल्ट रूप से साफ़ करता है। सक्रिय तत्व हटते हैं, अनजान टैग से टेक्स्ट निकाला जाता है, और अनुमत लिंक URL तथा क्रमांकित सूची के वैध start मान को छोड़कर एट्रिब्यूट हटते हैं।
प्रीव्यू पेन सैनिटाइज़ किया आउटपुट रेंडर करता है और कभी रिमोट संसाधन लोड नहीं करता, ताकि शत्रुतापूर्ण मार्कअप पेस्ट करना भी टूल को घर फ़ोन न करवा सके।
- सक्रिय कंटेंट हटासक्रिय व्यवहार ले जाने वाले एलिमेंट — script, style, iframe, object, embed, svg, form, video, audio, img — अपने कंटेंट समेत हटाए जाते हैं, सिर्फ़ बेअसर नहीं किए जाते।
- एट्रिब्यूट उठेइनलाइन स्टाइल, इवेंट हैंडलर और स्रोत की क्लास हटती हैं। सुरक्षित लिंक href रखते हैं और वैध क्रमांकित सूचियाँ start रखती हैं।
- रिपोर्ट किया, चुप नहींवर्कस्पेस बताता है कि उसने क्या हटाया — गिराए गए नोड और उछाले गए एट्रिब्यूट की गिनती — ताकि सैनिटाइज़ेशन चुपचाप बदलाव नहीं, दिखने वाली घटना हो।
लिंक सिर्फ़ सुरक्षित स्कीम रखते हैं
रेंडर किया दस्तावेज़ ज़्यादातर लिंक होता है, और सैनिटाइज़ेशन वहीं ठोस हो जाती है। कन्वर्टर http, https और mailto URL साथ ही इन-पेज #fragments स्वीकार करता है; बाकी सब — javascript:, data:, प्रोटोकॉल-रिलेटिव चालें — अपना href खोकर सादे टेक्स्ट के रूप में रेंडर होते हैं।
किसी कन्वर्टर पर मानकीकृत होने से पहले अनुमति-सूची को अपने कंटेंट के सामने जाँचें: ऐसा दस्तावेज़ीकरण सेट जो वैध रूप से ftp मिरर या कस्टम एप्लिकेशन स्कीम से लिंक करता है, उसे वे लिंक हाथ से बचाने होंगे, क्योंकि कोई समझदार सैनिटाइज़र उन्हें अपने आप पास नहीं करेगा।
- स्कीम अनुमति-सूचीबचे हुए लिंक पर rel="noreferrer noopener" का ठप्पा लगता है, ताकि खोला गया लिंक उस पेज को न देख सके न स्क्रिप्ट कर सके जिससे वह खुला।
- noopener noreferrerएक ही नियम दोनों दिशाओं में लागू होता है: Markdown में लिखे लिंक रूपांतरण पर जाँचे जाते हैं, और पेस्ट किए HTML में मिले href सैनिटाइज़ेशन के बाद फिर जाँचे जाते हैं।
- लेबल बचते हैंजब लिंक अपनी स्कीम खोता है, लेबल टेक्स्ट बना रहता है — टूटा नेविगेशन तुरंत दिखता है, चुपचाप javascript: पेलोड शिप होने के बजाय।
वापस की राउंड ट्रिप असली चीज़ें खोती है
HTML से Markdown बनाना पुनर्प्राप्ति है, बिल्कुल वैसा ही वापसी चक्र नहीं। समर्थित शीर्षक, पैराग्राफ़, ज़ोर, सूचियाँ, उद्धरण और कोड Markdown में लौटते हैं। दूसरी संरचनाएँ सफ़ाई या कन्वर्ज़न में सरल या हट सकती हैं।
HTML-से-Markdown को उस पेज से गद्य निकालने का तरीका मानें जिस पर आपका अब नियंत्रण नहीं — पुराना CMS एक्सपोर्ट, ऐसा दस्तावेज़ जो सिर्फ़ रेंडर किए HTML के रूप में मौजूद है। फिर वह ठीक करें जो राउंड ट्रिप नहीं कर सकती: इमेज वापस जोड़ें, तालिकाएँ फिर बनाएँ, और उसके बाद Markdown को मास्टर बनाए रखें।
- तालिकाएँ ढहती हैंतालिकाओं की ग्रिड खो जाती है और वे fenced text block बनती हैं; इसलिए तालिका डेटा को फिर लिखना या CSV में निर्यात करना पड़ता है।
- मीडिया हटा हैइमेज, वीडियो और इंटरैक्टिव एम्बेड डिज़ाइन से गायब हैं — Markdown बनने से पहले सैनिटाइज़र उन्हें सक्रिय कंटेंट के रूप में हटा चुका था।
- टेक्स्ट स्टाइल से जीवितसबसेट के बाहर की फ़ॉर्मैटिंग — span, div, क्लास, एंकर लक्ष्य — कोई निशान नहीं छोड़ती; टेक्स्ट बचता है, प्रस्तुति नहीं।
डॉक्स या ब्लॉग वर्कफ़्लो में रूपांतरण कहाँ बैठता है
रूपांतरण कदम प्रकाशन समय पर चलता है, प्रति लेख एक बार: Markdown में ड्राफ़्ट और रिव्यू करें, सैनिटाइज़ किए HTML में बदलें, रेंडर किया परिणाम सत्यापित करें, और शिप करें। सब कुछ ब्राउज़र टैब में होता है — ड्राफ़्ट कभी अपलोड नहीं होता, जो तब मायने रखता है जब कंटेंट अनघोषित लॉन्च हो।
- प्रकाशन-समय का कदमवर्कस्पेस 256 KiB तक का स्रोत स्वीकार करता है और 512 KiB तक का आउटपुट बनाता है — आराम से किताब-अध्याय पैमाना — और उन सीमाओं के पार चुपचाप काटने के बजाय स्पष्ट त्रुटि बताता है।
- स्पष्ट सीमाएँआउटपुट को अपने CMS फ़ील्ड में कॉपी करें या फ़ाइल के रूप में डाउनलोड करें; दोनों रास्ते वही सैनिटाइज़ किया दस्तावेज़ लेते हैं जो प्रीव्यू ने दिखाया।
- फिर कन्वर्ट करें, पैच न करेंMarkdown को उस कोड के पास वर्शन कंट्रोल में रखें जिसे वह दस्तावेज़ित करता है, और पुराने HTML को पैच करने के बजाय हर एडिट के बाद फिर कन्वर्ट करें।
संरचित टेक्स्ट एक दिनचर्या का हक़दार है।
Markdown ड्राफ़्ट और JSON पेलोड एक ही अनुशासन बाँटते हैं: पहले पार्स करें, संरचना इंस्पेक्ट करें, और पूरी समीक्षा अपने डिवाइस पर रखें।