PHP में Markdown के साथ काम करना: लाइब्रेरी और उपकरण
Markdown एक हल्की मार्कअप भाषा है, जिसे जटिल HTML लिखे बिना टेक्स्ट को तेज़ी से फ़ॉर्मेट करने के लिए बनाया गया है। शैक्षिक पोर्टल PythonLib पर, हम अक्सर लेखों, दस्तावेज़ीकरण और टिप्पणियों को प्रदर्शित करने के लिए Markdown मार्कअप को शुद्ध HTML में बदलने के कार्य का सामना करते हैं। PHP, एक सर्वर-साइड भाषा के रूप में, इस कार्य के लिए कई परिपक्व समाधान प्रदान करती है। इस लेख में, हम तीन सबसे लोकप्रिय लाइब्रेरीज़, उनकी स्थापना, बुनियादी उपयोग और विशेषताओं पर विचार करेंगे।
PHP में Markdown पार्सर की आवश्यकता क्यों है?
Markdown सामग्री लेखकों के लिए सुविधाजनक है, लेकिन ब्राउज़र इसे सीधे नहीं समझते हैं। इसलिए, सर्वर पर Markdown को HTML में बदलना आवश्यक है। लाइब्रेरीज़ का उपयोग करने के अतिरिक्त लाभ:
- सुरक्षा: HTML टैग का सही प्रसंस्करण और XSS हमलों की रोकथाम।
- लचीलापन: एक्सटेंशन का समर्थन (तालिकाएँ, फ़ुटनोट, गणितीय सूत्र)।
- प्रदर्शन: परिणामों का कैशिंग और तेज़ रूपांतरण।
1. Parsedown — सबसे सरल और तेज़
Parsedown एक एकल-क्लास लाइब्रेरी है जिसे किसी निर्भरता की आवश्यकता नहीं है। यह छोटे प्रोजेक्ट और शुरुआती लोगों के लिए आदर्श है।
स्थापना
composer require erusev/parsedownउपयोग का उदाहरण
<?phprequire_once 'vendor/autoload.php';
$Parsedown = new Parsedown();$markdown = "# शीर्षक
यह **बोल्ड** टेक्स्ट है और *इटैलिक* है।";$html = $Parsedown->text($markdown);echo $html;?>परिणाम: <h1>, <strong>, <em> टैग के साथ सही HTML। Parsedown स्वचालित रूप से खतरनाक HTML टैग को एस्केप करता है, यदि वे Markdown मार्कअप का हिस्सा नहीं हैं।
सुरक्षित मोड सेट करना
$Parsedown->setSafeMode(true); // Markdown में HTML को अक्षम करता है2. League/CommonMark — मानक के अनुरूप
The PHP League की लाइब्रेरी आधिकारिक CommonMark मानक को लागू करती है। यह एक्सटेंशन (तालिकाएँ, स्ट्राइकथ्रू टेक्स्ट) का समर्थन करती है और सख्ती से विनिर्देश का पालन करती है।
स्थापना
composer require league/commonmarkबुनियादी उपयोग
<?phpuse League\\CommonMark\\Environment\\Environment;use League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;use League\\CommonMark\\MarkdownConverter;
$environment = new Environment();$environment->addExtension(new CommonMarkCoreExtension());$converter = new MarkdownConverter($environment);
$markdown = "| तालिका | कॉलम ||---------|---------|| सेल 1 | सेल 2 |";$html = $converter->convert($markdown);echo $html;?>उन्नत सुविधाएँ
आप अतिरिक्त एक्सटेंशन जोड़ सकते हैं:
use League\\CommonMark\\Extension\\Table\\TableExtension;use League\\CommonMark\\Extension\\Strikethrough\\StrikethroughExtension;
$environment->addExtension(new TableExtension());$environment->addExtension(new StrikethroughExtension());यह तालिकाओं और स्ट्राइकथ्रू टेक्स्ट (~~टेक्स्ट~~) को संसाधित करने की अनुमति देता है।
3. cebe/markdown — हल्का विकल्प
Carsten Brandt की लाइब्रेरी cebe/markdown मॉड्यूलरिटी द्वारा प्रतिष्ठित है। आप केवल आवश्यक पार्सर का उपयोग कर सकते हैं (उदाहरण के लिए, केवल सूचियों या शीर्षकों के लिए)।
स्थापना
composer require cebe/markdownMarkdownExtra पार्सर के साथ उदाहरण
<?phpuse cebe\\markdown\\MarkdownExtra