Node.js में Markdown के साथ काम करना: पार्सिंग और कन्वर्ट करने की लाइब्रेरी
Markdown एक हल्की मार्कअप भाषा है जिसका उपयोग डॉक्यूमेंटेशन, README फ़ाइलों, ब्लॉग और कंटेंट मैनेजमेंट सिस्टम में टेक्स्ट को फ़ॉर्मेट करने के लिए व्यापक रूप से किया जाता है। Node.js इकोसिस्टम में कई शक्तिशाली लाइब्रेरी हैं जो Markdown को पार्स करके HTML में बदल सकती हैं, साथ ही उल्टा ऑपरेशन भी कर सकती हैं। इस लेख में हम तीन सबसे लोकप्रिय टूल्स: marked, showdown और remarkable, उनकी विशेषताओं, API और उपयोग के उदाहरणों पर चर्चा करेंगे।
1. marked लाइब्रेरी
marked एक तेज़ और हल्का Markdown पार्सर है जो सभी बुनियादी सिंटैक्स एलिमेंट्स (हेडिंग, लिस्ट, लिंक, इमेज, कोड, टेबल आदि) को सपोर्ट करता है। यह उच्च प्रदर्शन और सरल सेटअप के लिए जाना जाता है।
इंस्टॉलेशन
npm install marked
बेसिक उपयोग
Markdown स्ट्रिंग को HTML में बदलने के लिए बस marked() फंक्शन को कॉल करें:
const marked = require('marked');
const markdownText = `
# नमस्ते दुनिया!
यह **बोल्ड टेक्स्ट** और *इटैलिक* है।
- सूची आइटम 1
- सूची आइटम 2
[PythonLib पर जाएं](https://pythonlib.ru)
`;
const html = marked(markdownText);
console.log(html);
आउटपुट:
<h1>नमस्ते दुनिया!</h1>
<p>यह <strong>बोल्ड टेक्स्ट</strong> और <em>इटैलिक</em> है।</p>
<ul>
<li>सूची आइटम 1</li>
<li>सूची आइटम 2</li>
</ul>
<p><a href="https://pythonlib.ru">PythonLib पर जाएं</a></p>
ऑप्शन कस्टमाइज़ करना
marked आउटपुट को कस्टमाइज़ करने के लिए कई ऑप्शन सपोर्ट करता है:
const marked = require('marked');
marked.setOptions({
breaks: true, // लाइन ब्रेक को <br> में बदलें
gfm: true, // GitHub Flavored Markdown (टेबल, स्ट्राइकथ्रू आदि) चालू करें
headerIds: false, // हेडिंग में ID न जोड़ें
mangle: false, // ईमेल एड्रेस को एस्केप न करें
sanitize: false // HTML टैग न हटाएं (सावधानी से उपयोग करें)
});
const html = marked('पंक्ति 1\nपंक्ति 2');
console.log(html); // पंक्तियों के बीच <br> के साथ आउटपुट
सिंक्रोनस और एसिंक्रोनस उपयोग
डिफ़ॉल्ट रूप से marked() सिंक्रोनस काम करता है, लेकिन यह प्रॉमिस के माध्यम से एसिंक्रोनस मोड भी सपोर्ट करता है:
const marked = require('marked');
async function convertMarkdown(text) {
const html = await marked.parse(text);
return html;
}
convertMarkdown('# शीर्षक').then(console.log);
2. showdown लाइब्रेरी
showdown एक और लोकप्रिय Markdown पार्सर है जो ब्राउज़र और Node.js दोनों में काम करता है। यह एक एक्सटेंसिबल API प्रदान करता है और कई एक्सटेंशन को सपोर्ट करता है।
इंस्टॉलेशन
npm install showdown
बेसिक उपयोग
कन्वर्टर का इंस्टेंस बनाएं और makeHtml() मेथड को कॉल करें:
const showdown = require('showdown');
const converter = new showdown.Converter();
const markdownText = '## उपशीर्षक\n\nसामान्य टेक्स्ट **हाइलाइट** के साथ।';
const html = converter.makeHtml(markdownText);
console.log(html);
आउटपुट:
<h2>उपशीर्षक</h2>
<p>सामान्य टेक्स्ट <strong>हाइलाइट</strong> के साथ।</p>
एक्सटेंशन और कस्टमाइज़ेशन
showdown आपको अपने खुद के एक्सटेंशन जोड़ने की अनुमति देता है, जैसे इमोजी या LaTeX फ़ॉर्मूले के लिए:
const showdown = require('showdown');
// :smile: को इमोजी से बदलने के लिए एक्सटेंशन बनाएं
const emojiExtension = function() {
return [{
type: 'lang',
regex: /:smile:/g,
replace: '😊'
}];
};
const converter = new showdown.Converter({ extensions: [emojiExtension] });
const html = converter.makeHtml('यह एक :smile: इमोजी है।');
console.log(html); // <p>यह एक 😊 इमोजी है।</p>