Markdown: است��دام HTML داخل Markdown

Markdown ليس قادرًا على كل شيء — عندما تقصر الصيغة، فقط اكتب HTML مباشرة.

1. ما ستتعلمه


2. قصة حقيقية لمطور واجهة أمامية

(1) نقطة الألم: حدود Markdown تمنع المتطلبات

كانت ليزا تكتب توثيقًا تقنيًا لشركتها واحتاجت إلى عرض تسميات حالة ملونة (مثل "فشل" باللون الأحمر و "نجاح" بالأخضر) داخ�� خلايا الجدول. جداول Markdown لا تدعم ألوان الخلفية أو ألوان النص. جربت جميع أنواع الحلول البديلة في Markdown، وأهدرت ساعتين، واضطرت في النهاية إلى التقاط لقطات شاشة للتسميات ولصق الصورة — لكن الصور غير قابلة للبحث.

(2) الحل: كتابة HTML مباشرة في Markdown

أخبرها المهندس الأول توم: "يمكنك كتابة HTML داخل Markdown." استخدمت ليزا وسوم <span> مع سمة style لإنشاء تسميات ملونة. لا حاجة للقطات الشاشة، يبقى النص قابلاً للبحث، ويضيف فقط بضعة أسطر من HTML.

MARKDOWN
| حالة الاختبار | الحالة |
|:----------|:------|
| تسجيل دخول المستخدم | <span style="color: green;">✅ نجاح</span> |
| API الدفع | <span style="color: red;">❌ فشل</span> |

3. قواعد HTML في Markdown

صُمم Markdown كـ "طريقة أسهل لكتابة HTML." ونتيجة لذلك، فهو يدعم بشكل أصلي تضمين HTML في المستندات:

100%
graph TB
    A[مستند Markdown] --> B[صيغة Markdown]
    A --> C[صيغة HTML]
    B --> D[عناوين / قوائم / جداول]
    C --> E[HTML على مستوى الكتلة]
    C --> F[HTML مضمن]
    E --> G[div / table / pre]
    F --> G[span / img / br]
نوع HTML الخصائص مثال
HTML مضمن مكتوب مباشرة داخل فقرة Markdown <span style="color:red">نص</span>
HTML على مستوى الكتلة كتلة مستقلة، محاطة بأسطر فارغة <div>محتوى</div>
Markdown داخل الكتل Markdown داخل HTML على مستوى الكتلة قد لا يُعرض <div>**غامق** قد لا يعمل</div>

(1) HTML المضمن

HTML
هذه فقرة مع <span style="color: red;">نص أحمر</span> و
<strong>نص غامق</strong> (باستخدام وسوم HTML).

اضغط Ctrl + <br> لكسر السطر (<br> هو وسم HTML).

▶ مثال: استخدام HTML لتحقيق ما لا يستطيعه Markdown

HTML
هذا نص في Markdown العادي.

<kbd>Ctrl</kbd> + <kbd>S</kbd> لحفظ الملف.

الترقية إلى إصدار <abbr title="الإصدار 3.0">v3.0</abbr>.
▶ جرّب الكود
⚠️ ملاحظة: داخل وسوم HTML على مستوى الكتلة، صيغة Markdown القياسية (مثل **غامق**) عادة لا تُحلل. استخدم وسوم HTML مباشرة: <strong>غامق</strong>.

(3) استخدامات HTML الشائعة على مستوى الكتلة

HTML
<!-- حاوية مخصصة -->
<div style="border: 1px solid #ddd; padding: 16px; border-radius: 8px;">
  <h3>تحديث مهم</h3>
  <p>صيانة مجدولة في نهاية هذا الأسبوع.</p>
</div>

<!-- تخطيط متعدد الأعمدة -->
<div style="display: flex; gap: 16px;">
  <div style="flex: 1;">العمود الأيسر</div>
  <div style="flex: 1;">العمود الأيمن</div>
</div>

<!-- جدول منسق -->
<table>
  <tr>
    <th style="background: #4CAF50; color: white;">الاسم</th>
    <th>السعر</th>
  </tr>
  <tr>
    <td>المنتج أ</td>
    <td>29$</td>
  </tr>
</table>

5. سيناريوهات شائعة حيث يسد HTML الفجوات

السيناريو حد Markdown حل HTML
لون النص ❌ غير مدعوم <span style="color:red">نص</span>
أبعاد الصورة ❌ غير مدعوم <img src="رابط" width="200">
فتح الرابط في علامة تبويب جديدة ❌ غير مدعوم <a href="رابط" target="_blank">نص</a>
دمج خلايا الجدول ❌ غير مدعوم <td colspan="2">مدمجة</td>
تنسيق مخصص ❌ غير مدعوم <div style="...">محتوى</div>
كسر السطر داخل الجدول ❌ غير مدعوم وسم <br>

▶ مثال: HTML يقوم بما لا يستطيعه Markdown

HTML
<!-- فتح في علامة تبويب جديدة -->
<a href="https://example.com" target="_blank">افتح في نافذة جديدة</a>

<!-- حجم صورة مخصص -->
<img src="logo.png" width="150" alt="شعار" style="border-radius: 8px;">

<!-- تنسيق ضغطات المفاتيح -->
<kbd>Enter</kbd> أو <kbd>Ctrl</kbd> + <kbd>V</kbd>

<!-- مربع تنبيه بلون خلفية -->
<blockquote style="background: #fff3cd; border-left-color: #ffc107;">
  هذا مربع تنبيه منسق بشكل مخصص.
</blockquote>
▶ جرّب الكود
💡 نصيحة: هذه كلها أشياء لا يستطيع Markdown نفسه القيام بها. الاستخدام الحكيم لـ HTML يجعل مستنداتك أكثر احترافية. لكن لا تفرط في ذلك — 80% من المحتوى جيد مع Markdown القياسي.


6. الحدود بين HTML و Markdown

(1) Markdown داخل HTML على مستوى الكتلة عادة لا يُحلل

HTML
<div>
  **هذا النص لن يكون غامقًا** (صيغة Markdown تفشل داخل div)
  <strong>هذا النص غامق باستخدام HTML</strong>
</div>

استثناء: بعض المحللات (مثل Pandoc) تدعم تحليل Markdown داخل وسوم HTML، لكن GFM (GitHub) لا يدعم ذلك. لتكون آمنًا، استخدم صيغة HTML في جميع وسوم HTML على مستوى الكتلة.

(2) Markdown داخل HTML المضمن

HTML
<span style="color: red;">**هذا النص قد يُعرض غامقًا في بعض المحللات**</span>
⚠️ ملاحظة: سلوك المحللات يختلف. التوصية: استخدم صيغة HTML بشكل متسق داخل وسوم HTML — لا تخلط مع Markdown.

▶ مثال: الخلط الآمن مقابل غير الآمن

MARKDOWN
✅ آمن:
- اكتب Markdown للنص الأساسي: **غامق**
- استخدم HTML للاحتياجات المخصصة: <span style="color: red;">أحمر</span>

❌ غير آمن:
<div style="padding: 8px;">
  **هذا الغامق لن يعمل على GitHub**
</div>

7. الأمان والتوافق

(1) لا تفعل هذا

HTML
❌ غير آمن: <script>alert('XSS')</script>
❌ غير آمن: <img src="x" onerror="alert('هجوم')">
❌ غير آمن: <iframe src="https://موقع-ضار.com"></iframe>
⚠️ ملاحظة: منصات مثل GitHub تقوم تلقائيًا بتصفية تعليمات هجوم XSS البرمجية ولن تنفذ <script> ومعالجات الأحداث. ومع ذلك، عند تصدير مصدر Markdown إلى منصات أخرى، تجنب تضمين HTML غير آمن.

(2) قائمة التحقق من توافق HTML

HTML
<!-- ✅ متوافق عبر المنصات -->
<strong>غامق</strong>
<em>مائل</em>
<kbd>مفتاح</kbd>
<br>
<hr>

<!-- ⚠️ بعض المنصات لا تدعم -->
<details><summary>محتوى قابل للطي</summary>نص مخفي</details>
<mark>نص مميز</mark>
💡 نصيحة: إذا كان Markdown الخاص بك يحتاج إلى التنقل عبر المنصات (GitHub، GitLab، المعاينة المحلية، المدونة)، قلل من استخدام HTML. المزيد من HTML يعني المزيد من مخاطر التوافق.


8. مثال كامل: مستند Markdown معزز بـ HTML

TEXT 📖 للعرض فقط
معاينة مستند Markdown معزز بـ HTML:

سجل تغييرات المنتج v3.2:
- مربع تنبيه أخضر: ملخص التحديثات
- جدول HTML: الوحدة / الحالة / المالك (مع حالة ملونة)
- وسوم ضغطات المفاتيح: F5 للتحديث
- كتلة تعليمات برمجية Bash: أمر التثبيت npm install my-app@latest
- رابط بريد إلكتروني: support@example.com (بروتوكول mailto)

النتيجة المتوقعة: سجل منتج يجمع ب��ن Markdown و HTML — Markdown يتعامل مع البنية القياسية، HTML يتعامل مع الألوان وتنسيق ضغطات المفاتيح والحاويات المخصصة.


❓ أسئلة شائعة

س هل استخدام HTML في Markdown ممارسة جيدة؟
ج استخدمه باعتدال. 80% من المحتوى يعمل مع Markdown القياسي. استخدم HTML فقط للأشياء التي لا يستطيع Markdown القيام بها (الألوان، الأبعاد، روابط التبويب الجديدة). المزيد من HTML = قابلية نقل أقل.
س ما هي وسوم HTML التي يدعمها GitHub؟
ج GitHub يدعم معظم وسوم HTML الآمنة المضمنة وعلى مستوى الكتلة، لكنه يصفي <script> و <iframe> والوسوم غير الآمنة الأخرى ومعالجات الأحداث (مثل onclick).
س لماذا لا تعمل صيغة Markdown داخل وسوم HTML؟
ج لأن محللات Markdown تتخطى تحليل Markdown الداخلي عند معالجة كتل HTML. هذا حسب المواصفات. الحل: استخدم صيغة HTML في جميع كتل HTML.
س هل تحتاج وسوم HTML على مستوى الكتلة إلى أسطر فارغة محيطة؟
ج نعم، يجب أن تكون موجودة. بدون أسطر فارغة، قد يُعرض HTML على مستوى الكتلة بشكل غير صحيح — قد تفشل المحللات في تحديد حدود كتلة HTML.
س هل يمكنني استخدام أسماء فئات CSS في HTML؟
ج نعم، لكن أسماء الفئات لا تؤثر إلا إذا كانت منصتك المستهدفة تحتوي على قواعد CSS مطابقة. على GitHub، أسماء الفئات المخصصة لا تفعل شيئًا. على موقعك الإلكتروني، يمكنك تعريف أنماطك الخاصة.

📖 ملخص


📝 تمارين

  1. مبتدئ: اكتب فقرة Markdown حيث تستخدم <span> لتلوين كلمة واحدة بالأحمر، وتستخدم <kbd> لعرض الاختصار "Ctrl+S".

  2. متوسط: أنشئ مربع تنبيه منسق بشكل مخصص (باستخدام <div> مع لون خلفية وحدود) يحتوي على فقرة ورابط. قارن كيفية عرضه في VS Code مقابل GitHub.

  3. متقدم: ابنِ جدول HTML (مع <thead> و <tbody>) يستبدل جدول Markdown، مع صف رأس منسق وخلية مدمجة في الصف الأول. ضع كلاً من جدول HTML وجدول Markdown في نفس المستند وقارن عرضهما.

Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%