PHP में Markdown के साथ काम करना: लाइब्रेरी और टूल्स की समीक्षा
Markdown एक हल्की मार्कअप भाषा है जो सरल सिंटैक्स के साथ फ़ॉर्मेटेड टेक्स्ट बनाने की सुविधा देती है। PHP में Markdown को प्रोसेस करने के लिए कई परिपक्व और विश्वसनीय लाइब्रेरी मौजूद हैं। इस लेख में हम तीन सबसे लोकप्रिय टूल्स पर नज़र डालेंगे: Parsedown, PHP-Markdown और League/CommonMark।
1. Parsedown — हल्का और तेज़ पार्सर
Parsedown PHP में Markdown के साथ काम करने के लिए सबसे लोकप्रिय लाइब्रेरी में से एक है। इसे किसी बाहरी डिपेंडेंसी की ज़रूरत नहीं है, यह सभी बुनियादी मार्कअप एलिमेंट्स को सपोर्ट करता है और बहुत तेज़ी से काम करता है।
इंस्टॉलेशन
composer require erusev/parsedown
बुनियादी उपयोग
<?php
require 'vendor/autoload.php';
$Parsedown = new Parsedown();
$markdown = <<<MARKDOWN
# पहले स्तर का शीर्षक
यह **बोल्ड टेक्स्ट** है और *इटैलिक* है।
- सूची आइटम 1
- सूची आइटम 2
[PythonLib पर लिंक](https://pythonlib.ru)
MARKDOWN;
echo $Parsedown->text($markdown);
?>
इस कोड को चलाने का परिणाम शीर्षकों, सूचियों और लिंक्स के साथ सही HTML होगा।
अतिरिक्त सुविधाएँ
- सुरक्षित मोड का समर्थन (HTML टैग्स को एस्केप करना)
- नेस्टेड सूचियों और टेबल्स के साथ काम करना
setBreaksEnabled()औरsetMarkupEscaped()मेथड्स के ज़रिए कस्टमाइज़ेशन
2. PHP-Markdown — क्लासिक समाधान
PHP-Markdown Michel Fortin द्वारा बनाया गया Markdown पार्सर का मूल संस्करण है, जो John Gruber के Perl वर्ज़न पर आधारित है। यह लाइब्रेरी Markdown स्पेसिफिकेशन का सख्ती से पालन करती है।
इंस्टॉलेशन
composer require michelf/php-markdown
उपयोग का उदाहरण
<?php
require 'vendor/autoload.php';
use Michelf\Markdown;
$markdown = <<<MARKDOWN
## दूसरे स्तर का शीर्षक
> यह एक उद्धरण है।
> यह कई पंक्तियों का हो सकता है।
1. क्रमांकित सूची का पहला आइटम
2. दूसरा आइटम
`इनलाइन कोड` और कोड ब्लॉक:
<?php
echo "Hello, World!";
?>
MARKDOWN;
$html = Markdown::defaultTransform($markdown);
echo $html;
?>
विशेषताएँ
- MarkdownExtra के ज़रिए विस्तारित सिंटैक्स का समर्थन
- लिंक्स और ईमेल पतों का स्वचालित रूपांतरण
- आउटपुट में HTML को बंद करने की सुविधा
3. League/CommonMark — मानकीकृत कार्यान्वयन
League/CommonMark एक लाइब्रेरी है जो आधिकारिक CommonMark मानक को लागू करती है। यह अन्य पार्सर्स के साथ अधिकतम संगतता सुनिश्चित करती है और एक्सटेंशन को सपोर्ट करती है।
इंस्टॉलेशन
composer require league/commonmark
एक्सटेंशन के साथ उदाहरण
<?php
require 'vendor/autoload.php';
use 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 = <<<MARKDOWN
| तालिका | कॉलम 1 | कॉलम 2 |
|---------|-----------|-----------|
| पंक्ति 1| मान | मान |
| पंक्ति 2| मान | मान |
~~काटा गया टेक्स्ट~~ और ==हाइलाइट किया गया टेक्स्ट== (GFM)।
MARKDOWN;
echo $converter->convert($markdown)->getContent();
?>
अतिरिक्त एक्सटेंशन
- Table — तालिकाओं का समर्थन
- Strikethrough — काटा गया टेक्स्ट
- TaskList — चेकबॉक्स
- Autolink — स्वचालित लिंक
लाइब्रेरी की तुलना
सही लाइब्रेरी चुनना आपके प्रोजेक्ट की ज़रूरतों पर निर्भर करता है:
- Parsedown — सरल प्रोजेक्ट्स के लिए आदर्श, जहाँ