मुख्य सामग्री पर जाएँ

फ़ाइल फ़ॉर्मैट

Markdown क्या है? सिंटैक्स, CommonMark और GFM

Markdown एक हल्की मार्कअप भाषा है जो कुछ चिह्नों से सादे टेक्स्ट में हेडिंग, सूचियाँ और लिंक जोड़ देती है। हम इसका इतिहास, इसके मानक और MD फ़ाइलों को Word या PDF में बदलने पर क्या बचता है, यह समझाते हैं।

लेखक: Hemen Dönüştür Editör Ekibiप्रकाशित: 8 मिनट में पढ़ें

हैश चिह्न के साथ MD लिखा फ़ाइल बैज

किसी सॉफ़्टवेयर प्रोजेक्ट की README, नोट्स ऐप की हेडिंग वाली सूचियाँ, या चैट ऐप में तारांकन चिह्न (*) से बोल्ड किए गए शब्दों के बारे में सोचिए। इन सबके पीछे एक ही विचार है: Markdown। Markdown एक हल्की मार्कअप भाषा है, जो सादे टेक्स्ट में कुछ सरल चिह्न जोड़कर हेडिंग, सूचियाँ, लिंक और टेबल तय करने देती है। फ़ाइल किसी भी टेक्स्ट एडिटर में पढ़ने लायक रहती है, फिर भी ज़रूरत पड़ने पर उसे साफ़-सुथरे HTML पेज, Word डॉक्यूमेंट या PDF में बदला जा सकता है। यह लेख बताता है कि Markdown कैसे बना, इसका मूल सिंटैक्स क्या है, CommonMark और GitHub Flavored Markdown में क्या फ़र्क़ है, और MD फ़ाइलें बदलते समय किन बातों का ध्यान रखें।

Markdown क्या है?

Markdown लिखने के नियमों का एक सेट भी है और उन नियमों से लिखे टेक्स्ट को HTML में बदलने वाले टूल्स का आम नाम भी। फ़ाइलें आमतौर पर .md या .markdown एक्सटेंशन के साथ सेव होती हैं। इसके निर्माता John Gruber के अनुसार डिज़ाइन का सबसे बड़ा लक्ष्य पठनीयता है: Markdown डॉक्यूमेंट को सादे टेक्स्ट के रूप में जैसे का तैसा प्रकाशित किया जा सके, और वह ऐसा न लगे कि उस पर टैग या फ़ॉर्मैटिंग निर्देश लगाए गए हैं। जहाँ HTML को <strong>ज़रूरी</strong> चाहिए, वहाँ Markdown **ज़रूरी** इस्तेमाल करता है, और कच्चा रूप भी स्वाभाविक ढंग से पढ़ा जाता है।

संक्षिप्त इतिहास

John Gruber ने 2004 में Markdown बनाया, और Aaron Swartz ने उनके विचारों पर राय देकर योगदान दिया। सिंटैक्स ने सादे टेक्स्ट वाले ईमेल की परंपराओं (ज़ोर के लिए तारांकन, सूचियों के लिए हाइफ़न) और setext व Textile जैसी पहले की मार्कअप भाषाओं से प्रेरणा ली। Gruber ने अपनी Daring Fireball साइट पर जो Perl स्क्रिप्ट Markdown.pl प्रकाशित की, उसका संस्करण 1.0.1, 17 दिसंबर 2004 का है।

लेकिन Gruber का विवरण औपचारिक स्पेसिफ़िकेशन नहीं, बल्कि उदाहरणों से दी गई व्याख्या था। अस्पष्ट मामलों (एक के अंदर दूसरी सूची, इंडेंट किए कोड ब्लॉक, बीच में HTML) में हर इम्प्लीमेंटेशन ने अपने फ़ैसले लिए, और एक ही टेक्स्ट अलग-अलग टूल में अलग नतीजे देने लगा। इसके जवाब में दो बड़ी पहलें हुईं:

  • CommonMark (2014): John MacFarlane के नेतृत्व वाला एक स्पेसिफ़िकेशन, जो Markdown को बिना अस्पष्टता के परिभाषित करता है और सैकड़ों उदाहरणों से उसे परखने लायक बनाता है। पहले संस्करण 2014 की शरद ऋतु में आए; मौजूदा संस्करण 0.31.2 है, जो 28 जनवरी 2024 का है। स्पेसिफ़िकेशन को अभी 1.0 घोषित नहीं किया गया है।
  • GitHub Flavored Markdown (GFM, 2017): CommonMark के ऊपर बना GitHub का औपचारिक स्पेसिफ़िकेशन। यह टेबल, टास्क लिस्ट, स्ट्राइकथ्रू, विस्तारित ऑटोलिंक और सुरक्षा के लिए कुछ कच्चे HTML टैगों को छानने जैसे एक्सटेंशन जोड़ता है। नवीनतम प्रकाशित स्पेसिफ़िकेशन 0.29-gfm है, जो 6 अप्रैल 2019 का है।

Markdown को इंटरनेट के बुनियादी ढाँचे में भी मान्यता मिली: मार्च 2016 में प्रकाशित RFC 7763 ने text/markdown मीडिया टाइप (MIME टाइप) रजिस्टर किया, जिसमें एक वैकल्पिक variant पैरामीटर है जो बताता है कि लेखक ने कौन-सा Markdown रूप सोचा था।

Markdown के प्रमुख रूप

CommonMark और GFM के अलावा भी कुछ प्रचलित रूप हैं। RFC 7763 के साथ प्रकाशित RFC 7764 ने इनमें से कई को रजिस्टर किया और इस्तेमाल पर मार्गदर्शन दिया:

  • Markdown Extra: एक शुरुआती एक्सटेंशन, जिसने फ़ुटनोट, परिभाषा सूचियाँ और टेबल जोड़े।
  • MultiMarkdown: अकादमिक लेखन के लिए बना रूप, जिसमें मेटाडेटा, संदर्भ और क्रॉस-रेफ़रेंस हैं।
  • Pandoc Markdown: Pandoc कन्वर्टर का रूप, जिसमें किताबें और शोध पत्र लिखने के लिए कई एक्सटेंशन हैं।

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

मूल सिंटैक्स

Markdown का रोज़मर्रा का हिस्सा सीखने में कुछ ही मिनट लगते हैं:

# पहले स्तर की हेडिंग
## दूसरे स्तर की हेडिंग
इस पैराग्राफ़ में **बोल्ड**, *इटैलिक* और `कोड` है।
- बुलेट सूची
- दूसरा आइटम
  - इंडेंट किया उप-आइटम
1. क्रमांकित सूची
2. दूसरा चरण
[लिंक का टेक्स्ट](https://example.com)
![इमेज का विवरण](image.png)
> उद्धरण
```
कई पंक्तियों वाला कोड ब्लॉक
```

GFM में जोड़ी गई टेबल और टास्क लिस्ट ऐसी दिखती हैं:

| फ़ॉर्मैट | एक्सटेंशन |
|--------|-----------|
| Markdown | .md |
| सादा टेक्स्ट | .txt |
- [x] मसौदा लिखें
- [ ] उसकी समीक्षा करें

पैराग्राफ़ ख़ाली पंक्तियों से अलग किए जाते हैं। ज़्यादातर इम्प्लीमेंटेशन में एक अकेला लाइन ब्रेक उसी पैराग्राफ़ का हिस्सा माना जाता है; पंक्ति ज़बरदस्ती तोड़नी हो, तो पंक्ति के अंत में दो स्पेस दें। आप Markdown के अंदर सीधे HTML भी लिख सकते हैं। CommonMark इसकी इजाज़त देता है, हालाँकि GFM जैसे माहौल सुरक्षा के लिए कुछ टैग रोक देते हैं।

Markdown कहाँ इस्तेमाल होता है?

  • सॉफ़्टवेयर डेवलपमेंट: README, चेंजलॉग और योगदान गाइड, साथ ही GitHub और GitLab जैसे प्लेटफ़ॉर्म पर इश्यू और कोड रिव्यू की टिप्पणियाँ।
  • तकनीकी डॉक्यूमेंटेशन: Markdown फ़ाइलों से वेबसाइट बनाने वाले स्टैटिक साइट जनरेटर।
  • नोट्स लेना: कई नोट्स ऐप नोट्स को Markdown के रूप में रखते या एक्सपोर्ट करते हैं।
  • चैट और कम्युनिटी प्लेटफ़ॉर्म: Reddit और Discord जैसे प्लेटफ़ॉर्म Markdown के रूप इस्तेमाल करते हैं।
  • लेखन और प्रकाशन: Pandoc जैसे टूल्स से एक ही Markdown स्रोत से HTML, PDF, DOCX और EPUB बनाना।
  • AI टूल: चैट-आधारित AI सहायक अक्सर अपने जवाब Markdown में फ़ॉर्मैट करते हैं।

खूबियाँ और कमज़ोरियाँ

खूबियाँकमज़ोरियाँ
कच्चे रूप में भी पढ़ने लायकअलग-अलग रूप अलग तरह से व्यवहार करते हैं
सादा टेक्स्ट: छोटा, पोर्टेबल, वर्ज़न कंट्रोल के अनुकूलफ़ॉन्ट, रंग या पेज लेआउट नहीं
HTML, PDF और Word में आसानी से बदलता हैजटिल टेबल (मर्ज किए सेल) नहीं
मिनटों में सीखा जा सकता हैइमेज अलग फ़ाइलों में रहती हैं
किसी प्रोग्राम से बँधा नहींस्पेस और इंडेंटेशन की ग़लतियाँ आउटपुट बदल देती हैं

कौन-से प्रोग्राम Markdown खोलते हैं?

Markdown सादा टेक्स्ट है, इसलिए यह Notepad और TextEdit समेत किसी भी टेक्स्ट एडिटर में खुल जाता है। फ़ॉर्मैट किए प्रीव्यू के लिए आप Visual Studio Code का बिल्ट-इन Markdown प्रीव्यू या Obsidian और Typora जैसे ख़ास एडिटर इस्तेमाल कर सकते हैं। GitHub और GitLab रिपॉज़िटरी में .md फ़ाइलों को अपने-आप रेंडर करते हैं। दूसरी ओर Word, Markdown को फ़ॉर्मैट किए टेक्स्ट की तरह नहीं खोलता, इसलिए पहले फ़ाइल को बदलना पड़ता है।

आम समस्याएँ और उनके हल

कोई सूची या हेडिंग रेंडर नहीं होती

CommonMark में हेडिंग चिह्न के बाद स्पेस ज़रूरी है: ## हेडिंग, न कि ##हेडिंग। पैराग्राफ़ के बाद आने वाली सूची को भी सही रेंडर होने के लिए अक्सर बीच में एक ख़ाली पंक्ति चाहिए।

पंक्तियाँ आपस में जुड़ जाती हैं

एक अकेला लाइन ब्रेक पैराग्राफ़ को नहीं तोड़ता। नए पैराग्राफ़ के लिए एक ख़ाली पंक्ति छोड़ें, या पैराग्राफ़ के अंदर पंक्ति तोड़ने के लिए पंक्ति के अंत में दो स्पेस दें।

टेबल एक प्लेटफ़ॉर्म पर चलती है, दूसरे पर नहीं

टेबल न Gruber के मूल Markdown का हिस्सा हैं, न CommonMark के मूल का; वे GFM जैसे एक्सटेंशन से आती हैं। जाँच लें कि लक्ष्य वाला प्लेटफ़ॉर्म कौन-सा रूप सपोर्ट करता है।

संख्या से शुरू होने वाला पैराग्राफ़ क्रमांकित सूची बन जाता है

"2024. एक व्यस्त साल था" जैसी पंक्ति अंकों और पूर्णविराम से शुरू होती है, इसलिए उसे सूची समझा जा सकता है। इससे बचने के लिए पूर्णविराम से पहले बैकस्लैश लगाएँ (2024\.)।

Markdown फ़ाइलें कन्वर्ट करने के टिप्स

हमारे कन्वर्टर पर Markdown फ़ाइलें हमारे सर्वर पर अपलोड होती हैं और 30 मिनट के भीतर हटा दी जाती हैं। पढ़ने के लिए हम CommonMark और GitHub-शैली के एक्सटेंशन (टेबल, टास्क लिस्ट, फ़ुटनोट, ऑटोलिंक) के साथ Markdig लाइब्रेरी इस्तेमाल करते हैं।

  • Markdown से PDF और Markdown से Word हेडिंग, सूचियाँ, कोड ब्लॉक, उद्धरण और बॉर्डर वाली टेबल बनाए रखते हैं। टास्क लिस्ट के चेकबॉक्स ☑ और ☐ अक्षरों में बदल दिए जाते हैं, ताकि वे Word और PDF में दिखते रहें। टेक्स्ट डिफ़ॉल्ट रूप से 12 pt के सेरिफ़ फ़ॉन्ट में और कोड ब्लॉक मोनोस्पेस फ़ॉन्ट में रखे जाते हैं।
  • Markdown से HTML किसी README को कैरेक्टर एन्कोडिंग घोषित किए हुए आत्मनिर्भर वेब पेज में बदल देता है।
  • उलटी दिशा में Word से Markdown, HTML से Markdown और PDF से Markdown GitHub-अनुकूल Markdown बनाते हैं: हेडिंग, बोल्ड और इटैलिक टेक्स्ट, सूचियाँ, टेबल, लिंक, कोड ब्लॉक और उद्धरण बने रहते हैं; फ़ॉन्ट, रंग और पेज लेआउट हट जाते हैं। जिन टेबल में हेडर पंक्ति नहीं है, उनमें पहली पंक्ति हेडर बन जाती है, क्योंकि GFM टेबल को हेडर चाहिए। "1. धारा" जैसे संख्या से शुरू होने वाले सादे पैराग्राफ़ एस्केप कर दिए जाते हैं, ताकि वे ग़लती से सूची न बन जाएँ। फ़ाइल बिना BOM वाले UTF-8 में सेव होती है।

अक्सर पूछे जाने वाले सवाल

MD फ़ाइल कैसे खोलें?

कोई भी टेक्स्ट एडिटर इसे खोल देगा। फ़ॉर्मैट किया रूप देखने के लिए Visual Studio Code का प्रीव्यू या कोई Markdown एडिटर इस्तेमाल करें; अगर Word में पढ़ना है, तो इसे DOCX में बदलें।

CommonMark और GitHub Flavored Markdown में क्या अंतर है?

CommonMark, Markdown का मूल सिंटैक्स सटीक नियमों से परिभाषित करता है। GFM उसका बड़ा रूप है, जो CommonMark के ऊपर टेबल, टास्क लिस्ट, स्ट्राइकथ्रू और विस्तारित ऑटोलिंक जैसे एक्सटेंशन जोड़ता है।

क्या Markdown में टेबल बना सकते हैं?

हाँ, GFM जैसे एक्सटेंशन के साथ आप पाइप और हाइफ़न से सरल टेबल लिख सकते हैं। मर्ज किए सेल जैसी जटिल संरचनाओं के लिए HTML टेबल इस्तेमाल करें या डॉक्यूमेंट Word में तैयार करें।

Markdown और HTML में क्या अंतर है?

Markdown एक सरल लेखन फ़ॉर्मैट है, जिसे HTML में बदलने के लिए बनाया गया है। HTML जो कुछ व्यक्त कर सकता है, वह सब Markdown नहीं कर सकता, लेकिन इसका कच्चा रूप कहीं ज़्यादा पढ़ने लायक है। ज़रूरत हो, तो आप Markdown के अंदर HTML भी लिख सकते हैं।

क्या Markdown का कोई आधिकारिक मानक है?

Gruber का मूल विवरण औपचारिक स्पेसिफ़िकेशन नहीं है। आज सबसे ज़्यादा स्वीकृत सटीक परिभाषा CommonMark है, और text/markdown मीडिया टाइप मार्च 2016 में RFC 7763 से रजिस्टर हुआ।

स्रोत

संबंधित कन्वर्टर

सभी लेख