محوّل ماركداون إلى HTML
حوّل نص Markdown إلى HTML نظيف مع معاينة حيّة — عناوين وقوائم وروابط وكتل برمجية والمزيد، كل ذلك داخل متصفحك.
1,119 مشاهدة
كيف يعمل المحوّل
يتبع هذا المحوّل مواصفة CommonMark — نسخة محددة بدقة من Markdown تحسم الغموض الذي تركه وصف Markdown الأصلي لعام 2004 مفتوحًا (كيف تتفاعل القوائم المتداخلة مع الفقرات المنفصلة، وماذا يحدث حين تقع علامة قائمة داخل اقتباس، وما شابه). يتم التحليل على مرحلتين متمايزتين. المرحلة الأولى على مستوى الكتلة: يُقسَّم النص الخام إلى وحدات بنيوية — فقرات، وعناوين ATX (من # إلى ######)، وكتل كود محاطة بأسوار، واقتباسات، وقوائم مرقّمة وغير مرقّمة، وخطوط أفقية — اعتمادًا فقط على بنية الأسطر والمسافات البادئة، دون النظر بعد إلى محتوى كل كتلة. المرحلة الثانية على مستوى السطر: يفحص المحلل داخل كل كتلة علامات التأكيد (*مائل*، **غامق**)، ومقاطع الكود المضمّن (`كود`)، وصيغة الروابط أو الصور ([نص](رابط))، ويستبدلها بوسوم HTML المقابلة. يفسّر هذا التصميم ثنائي المرحلة لماذا تبقى علامة النجمة داخل كتلة كود محاطة بسور دون تغيير — إذ تُحسم كتل الكود بالكامل في المرحلة الأولى، قبل أن تصل قواعد التأكيد على مستوى السطر إلى محتواها أصلًا.
مثال: إذا كتبت ## ملاحظات الإصدار ثم سطرًا فارغًا يليه - **v2.1**: إصلاحات، فإن التحليل على مستوى الكتلة يحدد أولًا عنوانًا وقائمة بعنصر واحد؛ ثم يحوّل التحليل على مستوى السطر **v2.1** إلى <strong>v2.1</strong> داخل عنصر القائمة <li>. أما الجداول فتتبع امتداد GFM (Markdown بنكهة GitHub) المضاف فوق CommonMark: صف عناوين، وصف فاصل --- يحدد موضع النقطتين فيه (:--، :-:، --:) محاذاة العمود، وأي عدد من صفوف البيانات أسفله.
ما ينبغي معرفته
- يُفلَت HTML الخام ولا يُنفَّذ — لصق وسم script أو معالج حدث مضمّن يُعرَض كنص مرئي بدل أن يعمل، وهو خيار أمني متعمد للمحتوى الملصوق أو غير الموثوق.
- القوائم «المنفصلة» و«المتلاصقة» تغيّر الناتج — وجود سطر فارغ بين عناصر القائمة يجبر CommonMark على تغليف كل عنصر بوسم <p> خاص به (قائمة «منفصلة»)؛ وغياب الأسطر الفارغة يبقي العناصر كمحتوى مضمّن بسيط (قائمة «متلاصقة»)، ما يغيّر التباعد الرأسي في HTML الناتج.
- للتداخل العميق جدًا سقف عملي — القوائم المتداخلة بأربعة مستويات فأكثر أو تعريفات الروابط المرجعية صيغ صحيحة في CommonMark، لكنها حالات حدّية يخدمها محلل مخصص وقت البناء أفضل من معاينة حية داخل المتصفح.
الأسئلة الشائعة
هل الجداول مدعومة؟
تُحوَّل جداول الأنابيب (| a | b | مع صف فاصل ---). وتُميَّز نقطتا المحاذاة لليسار والوسط واليمين.
لماذا تظهر وسوم HTML الخاصة بي كنص عادي؟
هذا مقصود — يُفلَت HTML الخام لأسباب أمنية. اكتب المكافئ بصيغة Markdown، أو أزل الإفلات يدويًا إن كنت تثق بالمصدر.
هل يتبع تباعد الأسطر قواعد Markdown؟
نعم: يفصل السطر الفارغ بين الفقرات، ويولّد انتهاء السطر بمسافتين وسم <br>. تُدمج فواصل الأسطر المفردة داخل الفقرة الواحدة كما تحدده مواصفة CommonMark.
لماذا يبدو التنسيق أحيانًا داخل قائمة متداخلة أو كتلة كود على نحو غير متوقع؟
لأن التحليل يجري على مرحلتين: تُحسم البنية على مستوى الكتلة (القوائم، أسوار الكود، الاقتباسات) أولًا، اعتمادًا فقط على المسافات البادئة وعلامات الأسطر، قبل تطبيق أي تنسيق على مستوى السطر (غامق، مائل، روابط) داخل كل كتلة. لا تمسّ المرحلة الثانية أبدًا محتوى كتلة الكود المحاطة بسور، لذا يبقى **هذا** نصًا حرفيًا هناك بدل أن يتحول إلى غامق — وهذا سلوك متوقع في CommonMark وليس خللًا.
ما الفرق بين CommonMark الأساسي وميزات «نكهة GitHub»؟
يحدد CommonMark الأساسي العناوين والتأكيد والقوائم والاقتباسات وكتل الكود والروابط بدقة. أما الجداول، والنص المشطوب (<code>~~نص~~</code>)، ومربعات قوائم المهام (<code>[ ]</code> / <code>[x]</code>) فهي امتدادات GFM مضافة فوقها — مدعومة على نطاق واسع من محوّلات مثل هذا، لكنها غير مضمونة في كل تطبيق صارم يقتصر على CommonMark وحده قد تلصق الناتج فيه لاحقًا.
أدوات مشابهة
الإبلاغ عن مشكلة
محوّل ماركداون إلى HTML
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!