Markdown إلى HTML
حوّل Markdown إلى HTML بدعم صياغة على طراز GitHub — جداول، قوائم مهام، كود مُسيَّج، ونص مشطوب. تُعرَض معاينة حية داخل إطار معزول حتى لا يتمكن أي شيء تلصقه من التنفيذ.
- الملفات لا تغادر جهازك أبدًا
- مجاني، بدون تسجيل
- بدون علامات مائية
- يعمل دون اتصال بعد التحميل
كيفية استخدام Markdown إلى HTML
- 1
اكتب أو الصق Markdown
يتحدَّث HTML والمعاينة أثناء الكتابة.
- 2
تحقق من المعاينة
مُعرَضة في إطار معزول، حتى لا يستطيع المحتوى المُلصَق تنفيذ نصوص برمجية.
- 3
انسخ HTML
انسخ الترميز أو نزّله كملف .html.
CommonMark مقابل GitHub Flavored Markdown
بدأ Markdown كصيغة قليلة التحديد دون قواعد نحوية واحدة موثوقة، مما يعني أن تطبيقات مختلفة اختلفت في الحالات الحدّية — كيف يجب أن تتصرف القوائم المتداخلة، ما إذا كانت الشرطات السفلية داخل كلمة تُحتسَب كتأكيد — غالبًا بطرق تنتج إخراجًا مُعرَضًا مختلفًا حقًا من نفس النص المصدري المتطابق. ظهر CommonMark تحديدًا لإصلاح هذا بتعريف مواصفات واحدة ودقيقة ودون لبس يجب أن يتبعها أي مُحلِّل متوافق بالضبط. يُبنى GitHub Flavored Markdown (GFM) على أساس CommonMark ذاك ويُضيف عدة امتدادات لا يُعرِّفها CommonMark العادي على الإطلاق: جداول مبنية بأحرف عمودية وصف فاصل من الشرطات، مربعات اختيار قائمة مهام مكتوبة كـ`- [ ]` و`- [x]`، نص مشطوب ملفوف بعلامتي تنصيص مزدوجتين، وربط تلقائي لعناوين URL العارية دون حاجة لصياغة رابط صريحة. GFM هي اللهجة التي تنفذها هذه الأداة لأنها ما استقر عليه GitHub وReddit والغالبية الساحقة من مولّدات المواقع الثابتة وأدوات التوثيق، مما يجعلها الهدف الأكثر فائدة على نطاق واسع لأي شيء مكتوب ليُقرأ في مكان آخر.
مما تحمي المعاينة المعزولة، ومما لا تحمي
تسمح صياغة Markdown عمدًا بتضمين HTML خام مباشرة داخلها — هذا مقصود وهو ما يترك لكُتّاب Markdown إدراج عنصر مُضمَّن، محاذاة معينة، أو قطعة من التنسيق لا تملك صياغة Markdown نفسها اختصارًا لها. الخطر أن وسم `<script>` أو معالِج حدث مضمَّن مثل `onerror=` مُلصَق في Markdown غير موثوق عادةً سيُنفَّذ في السياق الذي يعرضه، وهذا ناقل حقيقي للبرمجة النصية عبر المواقع إذا جاء Markdown من شخص غير الشخص الذي يشاهد المعاينة. عرض المعاينة الحية داخل iframe معزول بنصوص برمجية معطَّلة يعني أن أي وسم نص برمجي أو معالِج حدث كهذا في المعاينة ببساطة لا يُنفَّذ — يرفض المتصفح تنفيذ كود داخل إطار معزول بشكل صحيح، مُحتويًا الخطر في تلك المعاينة المعزولة.
ما لا يفعله العزل هو تطهير *إخراج HTML المُولَّد* الذي تنتجه هذه الأداة لتنسخه — ذلك الإخراج على مستوى النص لا يزال يحتوي أي HTML خام موجود في Markdown الأصلي، محفوظًا بأمانة، بالضبط كما تقصد مواصفات Markdown. إذا كان ذلك HTML المُولَّد سيُدرَج في صفحة حية تعرض محتوى من كاتب غير موثوق، فإنه يحتاج خطوة تطهير منفصلة خاصة به في الخادم قبل النشر، وهذه خطوة مختلفة عن أي شيء يتعامل معه هذا العزل للمعاينة.
لماذا يسمح Markdown بـHTML خام من الأساس
صُمِّم Markdown عمدًا كاختصار لتراكيب HTML التي يلجأ إليها الكُتّاب أكثر — الترويسات، الروابط، التأكيد، القوائم — بدلًا من بديل كامل لكل قدرة HTML. أي شيء ليس لصياغة Markdown نفسها مكافئ له، من نمط مضمَّن معين إلى فيديو مُضمَّن، مُصمَّم ليُكتَب كـHTML حرفي مباشرة داخل الكود المصدري لـMarkdown، ويُنقِله المُحلِّل دون تغيير بدلًا من رفضه كغير صالح. هذا قرار تصميم متعمَّد يعود إلى مواصفات Markdown الأصلية، لا ثغرة أو سهو في أي تطبيق معين.
الأسئلة الشائعة
أي نسخة من Markdown مدعومة؟
GitHub Flavored Markdown: جداول، كتل كود مُسيَّجة، قوائم مهام، نص مشطوب وروابط تلقائية، فوق نواة CommonMark. هذه اللهجة التي يستخدمها GitHub وReddit ومعظم مولّدات المواقع الثابتة.
هل من الآمن لصق Markdown من مصدر غير موثوق؟
تُعرَض المعاينة داخل iframe معزول بنصوص برمجية معطَّلة، لذا لا يمكن لوسوم `<script>` المُضمَّنة ومعالِجات الأحداث التنفيذ. لاحظ أن *HTML المُولَّد* لا يزال يحتوي أي HTML خام كان في Markdown الخاص بك — طهِّره في الخادم قبل نشر محتوى لم تكتبه أنت.
هل يدعم HTML خامًا داخل Markdown؟
نعم — يسمح Markdown بـHTML مضمَّن ويُنقَل كما هو. هذا ما يجعل ملاحظة التطهير أعلاه مهمة إذا لم يكن المصدر موثوقًا.
لماذا لا يُعرَض جدولي؟
تحتاج جداول GFM صف فاصل من الشرطات تحت الترويسة، وسطرًا فارغًا في البداية إذا تبع الجدول فقرة. علامة عمودية واحدة مفقودة في صف الفاصل تُحوِّل كل شيء بصمت مرة أخرى إلى نص عادي.