Markdown: صيغة GFM الموسعة والرموز التعبيرية

Markdown له نكهات قياسية وموسعة — GitHub Flavored Markdown هو الامتداد الأكثر استخدامًا، مضيفًا العديد من ميزات الصيغة العملية.

1. ما ستتعلمه


2. قصة حقيقية لمسؤول مشروع مفتوح المصدر

(1) نقطة الألم: المشكلات تفتقر إلى المعلومات المنظمة

يدير مورغان مشروعًا مفتوح المصدر بـ 5000+ نجمة ويتلقى عشرات المشكلات كل يوم. الإرسالات فوضوية — بعضها بدون خطوات إعادة الإنتاج، وبعضها ينسى تضمين رسائل الخطأ، وبعضها يضع رموزًا تعبيرية في العناوين مما يجعل التصفية صعبة. يقضي المسؤولون وقتًا طويلاً في سؤال "ما الإصدار الذي تستخدمه؟" و "ما هي رسالة الخطأ الكاملة؟"

(2) الحل: إنشاء قوالب المشكلات باستخدام GFM

أنشأ مورغان قوالب مشكلات GitHub باستخدام قوائم المهام (قوائم التحقق - [ ]) والجداول (معلومات الإصدار/البيئة) وكتل التعليمات البرمجية (سجلات الأخطاء) لتنظيم المعلومات. الرموز التعبيرية تحدد نوع المشكلة: 🐛 خطأ, ✨ ميزة, 📖 توثيق. بعد تفعيل القالب، ارتفع اكتمال المشكلات من 30% إلى 85%، وانخفض متوسط وقت المعالجة إلى النصف.


3. نظرة عامة على GFM

GitHub Flavored Markdown (GFM) هو مجموعة شاملة من Markdown القياسي، مضيفًا امتدادات خاصة بـ GitHub فوق مواصفة CommonMark:

100%
graph TB
    A[GFM - GitHub Flavored Markdown] --> B[معيار CommonMark]
    A --> C[امتدادات GFM]
    C --> D[قوائم المهام]
    C --> E[الجداول]
    C --> F[المشطوب]
    C --> G[الروابط التلقائية]
    C --> H[الرموز التعبيرية]
    C --> I[تخطي الصيغة]
الميزة Markdown القياسي GFM
الجداول ❌ لا يوجد معيار ✅ دعم كامل
قوائم المهام ❌ لا يوجد معيار ✅ مدعومة
المشطوب ❌ لا يوجد معيار ��� نص
الروابط التلقائية ⚠️ فقط <> ✅ تعرف تلقائي على URL
الرموز التعبيرية ❌ لا يوجد معيار :smile:
تمييز صيغة التعليمات البرمجية المسورة ⚠️ جزئي ✅ دعم كامل
تخطي Markdown ❌ غير مدعوم ✅ تخطي \
💡 نصيحة: على الرغم من أن GFM هو امتداد GitHub، إلا أن معظم مح��لات ومحررات Markdown الحديثة (VS Code، Typora، Obsidian) تدعم أيضًا هذه الامتدادات.


4. الرموز التعبيرية

(1) طريقتان لإدراج الرموز التعبيرية

MARKDOWN
الطريقة 1 (موصى بها): استخدام الرموز المختصرة المحاطة بنقطتين رأسيتين
:smile: → 😄
:rocket: → 🚀
:warning: → ⚠️

الطريقة 2: لصق أحرف الرموز التعبيرية مباشرة
😄 🚀 ⚠️ ✅ ❌

(2) الرموز التعبيرية الشائعة للتوثيق التقني

MARKDOWN
✅ تم / ❌ فشل / ⚠️ تحذير
🐛 خطأ / ✨ ميزة جديدة / 📖 توثيق
🚀 إصدار / 🔧 تكوين / 🎨 تنسيق
📦 التبعيات / 🔒 أمان / 📊 بيانات
⚠️ ملاحظة: ليست كل المنصات تدعم الرموز المختصرة للتعبيرات (���ثل :smile:). بعضها يدعم فقط أحرف الرموز التعبيرية الملصوقة. لأقصى توافق خارج GitHub، الصق أحرف الرموز التعبيرية مباشرة.

▶ مثال: استخدام الرموز التعبيرية لتسمية أنواع المشكلات

MARKDOWN
## قالب المشكلة

### النوع
- 🐛 تقرير خطأ
- ✨ طلب ميزة
- 📖 تحسين التوثيق
- 🔧 مشكلة تكوين

### البيئة
- نظام التشغيل: macOS 14.5
- المتصفح: Chrome 126
- الإصدار: v2.3.1

5. الروابط التلقائية والتعرف على URL

(1) التعرف التلقائي على URL

GFM يحول تلقائيًا عناوين URL إلى روابط قابلة للنقر — لا حاجة لـ <>:

MARKDOWN
زر https://github.com لمعرفة المزيد.

التوثيق: https://developer.mozilla.org

مستودع المشروع: https://github.com/user/repo

(2) التعرف التلقائي على البريد الإلكتروني

MARKDOWN
اتصل بنا: support@example.com
بريد المؤلف: author@example.com
💡 نصيحة: إذا كنت لا تريد أن يصبح URL رابطًا، ضعه في كتلة تعليمات برمجية أو استخدم ��لتخطي.


6. تجاهل صيغة Markdown

استخدم الشرطة المائلة العكسية \ لتخطي أحرف Markdown الخاصة لتُعرض كنص عادي:

MARKDOWN
\# هذا ليس عنوانًا — يعرض حرف "#"

\*\*هذا ليس غامقًا\*\*

\- هذا ليس عنصر قائمة

\[هذا ليس رابطًا\](url)
💡 نصيحة: GFM يدعم أيضًا تغليف الرموز بـ ` لعرض شكلها الخام: `#` يُعرض كـ # بدلاً من عنوان.

▶ مثال: سيناريوهات التخطي الشائعة

MARKDOWN
عند كتابة الدروس، تحتاج أحيانًا إلى عرض صيغة Markdown نفسها:

استخدم \`#\` للإشارة إلى عنوان من المستوى الأول.

مثال صيغة: \*\*نص غامق\*\*

في التعليمات البرمجية يكون `**غامق فعلي**` (مغلف بعلامات تنصيص خلفية، لن يُعرض).
💡 نصيحة: تغليف الصيغة بعلامات تنصيص خلفية هو النهج الأكثر شيوعًا: `**نص**` يُعرض بتنسيق التعليمات البرمجية ولن يُعرض كغامق.


7. امتدادات GFM الأخرى

(1) المشطوب

MARKDOWN
~~هذا النص تم حذفه~~
~~هذه الميزة مهملة~~
💡 نصيحة: المشطوب شائع في GFM لكن ليس كل المحللات تدعمه. GitHub و GitLab و VS Code جميعها تدعمه.

(2) تنسيق أغنى داخل الجداول

جداول GFM تدعم التعليمات البرمجية والروابط وأنواع محتوى متعددة:

MARKDOWN
| الأمر | الوصف | مثال |
|:--------|:------------|:--------|
| `git status` | عرض الحالة | [توثيق][status] |
| `git log` | عرض السجل | وضع مضغوط `--oneline` |
| ~~`git merge`~~ | مهمل | استخدم `rebase` بدلاً من ذلك |

[status]: https://git-scm.com/docs/git-status

(3) تمييز صيغة كتل التعليمات البرمجية المسورة

GFM يدعم تمييز الصيغة لعشرات اللغات:

YAML
name: CI Pipeline
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm test
💡 نصيحة: GFM يدعم علامة اللغة diff — أسطر + تظهر باللون الأخضر (مضافة)، أسطر - تظهر بالأحمر (محذوفة). مثالي لعرض تغييرات التعليمات البرمجية.

▶ مثال: اس��خدام diff لعرض تغييرات التعليمات البرمجية

DIFF
# الإصدار القديم
-    <script src="old-script.js"></script>
# الإصدار الجديد
+    <script src="new-script.min.js" defer></script>

8. مثال كامل: كتابة مشكلة كاملة باستخدام GFM

TEXT 📖 للعرض فقط
عنوان المشكلة: شريط التنقل لا يتوسع في Firefox

البيئة:
  نظام التشغيل | Windows 11
  المتصفح | Firefox 128.0
  الإصدار | v3.2.1

خطوات إعادة الإنتاج:
1. افتح التطبيق
2. انقر على قائمة المستخدم في أعلى اليمين
3. فشلت القائمة في التوسع

إخراج السجل:
[2026-06-15 14:32:01] نقر المستخدم على nav-toggle
[2026-06-15 14:32:03] لا استجابة من معالج التبديل

النتيجة المتوقعة: مشكلة GitHub منظمة مع تسميات نوع واضحة (🐛 خطأ)، والبيئة في جدول، وخطوات إعادة الإنتاج في قائمة مرتبة، وقائمة تحقق كقائمة مهام.


❓ أسئلة شائعة

س ما الفرق بين GFM و Markdown القياسي؟
ج Markdown القياسي هو مجموعة الصيغة الأساسية (عناوين، قوائم، روابط، إلخ). GFM يضيف جداول وقوائم مهام ومشطوب ورموز تعبيرية وروابط تلقائية والمزيد فوق ذلك. معظم الأدوات الحديثة تدعم GFM.
س هل تعمل الرموز المختصرة للتعبيرات (:smile:) في كل مكان؟
ج لا. :smile: تعمل فقط على منصات محددة مثل GitHub و GitLab و Slack. في VS Code و Typora، الصق أحرف الرموز التعبيرية مباشرة بدلاً من ذلك.
س ماذا لو كانت محللة Markdown الخاصة بي لا تدعم GFM؟
ج تحقق من توثيق المحللة لإضافات أو خيارات GFM. Pandoc يستخدم --from gfm، marked.js يدعم GFM افتراضيًا، Python-Markdown يحتاج extensions=['extra'].
س كيف أجعل Markdown متوافقًا مع جميع المحللات؟
ج استخدم فقط صيغة Markdown القياسية (تجنب امتدادات GFM)، وارجع إلى HTML للأجزاء غير المدعومة. لكن هذا يضحي بالراحة. اختر مجموعة الصيغة المناسبة بناءً على منصتك المستهدفة.
س هل [TOC] جزء من GFM؟
ج لا. [TOC] هي ميزة مخصصة لبعض المحررات (مثل إضافة Markdown All in One في VS Code، Typora) وليست جزءًا من أي معيار Markdown.

📖 ملخص


📝 تمارين

  1. مبتدئ: اكتب مستند اتفاقية رسائل Git commit يستخدم الرموز التعبيرية لتسمية أنواع commit (مثلاً ✨ ميزة 🐛 إصلاح) ويتضمن قائمة مهام كقائمة تحقق قبل commit.

  2. متوسط: استخدم علامة اللغة diff لعرض مقارنة قبل/بعد لتغيير تعليمات برمجية (5 أسطر على الأقل، مع إضافات وحذوفات). ثم استخدم الربط التلقائي للإشارة إلى مستودع GitHub.

  3. متقدم: أنشئ قالب مشكلة GitHub كامل يجمع بين الجداول (معلومات البيئة) وقوائم المهام (قائمة تحقق) والقوائم المرتبة (خطوات إعادة الإنتاج) وكتل التعليمات البرمجية (السجلات/التكوين) والرموز التعبيرية (تسميات النوع) والاقتباسات (لقطات الشاشة/ملاحظات إضافية).

Web-Tutorial.com

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

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

100%