العمل مع Markdown في Node.js: نظرة عامة على المكتبات والأدوات
Markdown هي لغة ترميز شائعة تُستخدم لتنسيق النص في التوثيق والمدونات وملفات README والمنصات التعليمية. في نظام Node.js البيئي، توجد عدة مكتبات قوية تسمح بتحويل Markdown إلى HTML ومعالجة الكود والجداول والعناصر الأخرى. في هذه المقالة، سنستعرض ثلاثة من أشهر الأدوات: marked وremarkable وshowdown، بالإضافة إلى تحليل أمثلة على استخدامها.
1. مكتبة marked
Marked هي واحدة من أسرع وأخف المكتبات لتحليل Markdown. ليس لها تبعيات خارجية وتدعم CommonMark وGFM (GitHub Flavored Markdown).
التثبيت
npm install markedالاستخدام الأساسي
const marked = require('marked');
const markdownString = '# عنوانهذا نص **عريض** و*مائل*.
- بند 1- بند 2';
const html = marked.parse(markdownString);console.log(html);النتيجة:
<h1 id="عنوان">عنوان</h1><p>هذا <strong>نص عريض</strong> و<em>مائل</em>.</p><ul><li>بند 1</li><li>بند 2</li></ul>تخصيص الخيارات
تدعم Marked العديد من الخيارات للتحكم الدقيق في التحليل:
const marked = require('marked');
marked.setOptions({ breaks: true, // تحويل فواصل الأسطر إلى <br> gfm: true, // دعم GFM headerIds: false // تعطيل المعرفات في العناوين});
const html = marked.parse('سطر 1سطر 2');console.log(html);// <p>سطر 1<br>سطر 2</p>2. مكتبة remarkable
Remarkable هي مكتبة مرنة تدعم الإضافات والملحقات. تسمح بإضافة بناء جملة للصيغ الرياضية والرسوم البيانية والعناصر المحددة الأخرى.
التثبيت
npm install remarkableمثال على الاستخدام
const { Remarkable } = require('remarkable');const md = new Remarkable();
const markdown = '## عنوان فرعي
`code` و `inline code`';const html = md.render(markdown);console.log(html);الإخراج:
<h2>عنوان فرعي</h2><p><code>code</code> و <code>inline code</code></p>الإضافات والملحقات
تدعم Remarkable الإضافات لمعالجة الجداول وقوائم المهام والعناصر الأخرى:
const { Remarkable } = require('remarkable');const md = new Remarkable({ html: true, linkify: true});
// إضافة إضافة للجداولmd.renderer.rules.table_open = function() { return '<table class="table">';};
const html = md.render('| العمود 1 | العمود 2 ||-----------|-----------|| بيانات 1 | بيانات 2 |');console.log(html);3. مكتبة showdown
Showdown هي نسخة من Showdown الأصلي للغة JavaScript. سهلة الاستخدام ومناسبة تمامًا لتطبيقات العميل والخادم.
التثبيت
npm install showdownمثال على الكود
const showdown = require('showdown');const converter = new showdown.Converter();
const markdown = '**عريض** و*مائل*';const html = converter.makeHtml(markdown);console.log(html);// <p><strong>عريض</strong> و<em>مائل</em></p>تخصيص الإضافات
تدعم Showdown الإضافات التي يمكن إضافتها لإضافة ميزات جديدة:
const showdown = require('showdown');
// إنشاء إضافة لتمييز الكودconst myExt = { type: 'output',