انتقل إلى المحتوى الرئيسي

صيغ الملفات

ما هو Markdown؟ الصياغة وCommonMark وGFM

Markdown لغة ترميز خفيفة تضيف العناوين والقوائم والروابط إلى النص العادي ببضعة رموز فقط. نستعرض تاريخها ومعاييرها وما يبقى من التنسيق عند تحويل ملفات MD إلى Word أو PDF.

الكاتب: Hemen Dönüştür Editör Ekibiتاريخ النشر: 6 دقائق قراءة

شارة ملف مكتوب عليها MD مع رمز الشباك #

فكّر في ملف README لمشروع برمجي، أو القوائم ذات العناوين في تطبيق لتدوين الملاحظات، أو الكلمات التي تجعلها عريضة بالنجوم في تطبيق دردشة. وراء كل ذلك فكرة واحدة اسمها Markdown. وهي لغة ترميز خفيفة تتيح لك تحديد العناوين والقوائم والروابط والجداول بإضافة بضعة رموز بسيطة إلى النص العادي. يبقى الملف مقروءا في أي محرر نصوص، ومع ذلك يمكن تحويله متى شئت إلى صفحة HTML نظيفة أو مستند Word أو ملف PDF. يتناول هذا المقال نشأة Markdown وصياغتها الأساسية والفروق بين CommonMark وGitHub Flavored Markdown وما ينبغي الانتباه إليه عند تحويل ملفات MD.

ما هو Markdown؟

Markdown هي مجموعة من أعراف الكتابة، وهي أيضا الاسم الشائع للأدوات التي تحوّل النص المكتوب بها إلى HTML. وتُحفظ الملفات عادة بالامتداد .md أو .markdown. ويقول مبتكرها جون غروبر إن هدف التصميم الأول هو سهولة القراءة: ينبغي أن يكون مستند Markdown قابلا للنشر كما هو، نصا عاديا، دون أن يبدو مُعلَّما بالوسوم أو تعليمات التنسيق. فحيث تحتاج HTML إلى <strong>مهم</strong> تكتفي Markdown بـ **مهم**، وحتى النسخة الخام تُقرأ بشكل طبيعي.

لمحة تاريخية

ابتكر جون غروبر لغة Markdown عام 2004، وأسهم آرون سوارتز بمناقشة أفكاره وتقييمها. واستلهمت الصياغة أعراف البريد الإلكتروني النصي (النجوم للتأكيد والشرطات للقوائم) ولغات ترميز سابقة مثل setext وTextile. ويحمل الإصدار 1.0.1 من Markdown.pl، وهو سكربت Perl نشره غروبر على موقعه Daring Fireball، تاريخ 17 ديسمبر 2004.

غير أن وصف غروبر كان شرحا بالأمثلة لا مواصفة رسمية. فالحالات الملتبسة (القوائم المتداخلة وكتل الشيفرة المزاحة ومزج HTML) جعلت كل تطبيق يتخذ خياراته الخاصة، وصار النص نفسه ينتج مخرجات مختلفة في أدوات مختلفة. وتبع ذلك ردّان رئيسيان:

  • CommonMark (2014): مواصفة يقودها جون ماكفارلين تعرّف Markdown دون لبس وتجعلها قابلة للاختبار بمئات الأمثلة. ظهرت الإصدارات الأولى في خريف 2014، والإصدار الحالي هو 0.31.2 بتاريخ 28 يناير 2024. ولم تُعلَن المواصفة بعدُ بالإصدار 1.0.
  • GitHub Flavored Markdown (GFM، 2017): مواصفة GitHub الرسمية المبنية فوق CommonMark. تضيف امتدادات مثل الجداول وقوائم المهام والنص المشطوب والروابط التلقائية الموسّعة، وتُرشّح بعض وسوم HTML الخام لأسباب أمنية. وآخر مواصفة منشورة هي 0.29-gfm بتاريخ 6 أبريل 2019.

وحظيت Markdown كذلك باعتراف في البنية التحتية للإنترنت: فقد سجّل RFC 7763 المنشور في مارس 2016 نوع الوسائط (MIME) text/markdown مع معامل اختياري variant يبيّن نكهة Markdown التي قصدها الكاتب.

أبرز نكهات Markdown

إلى جانب CommonMark وGFM هناك نكهات أخرى منتشرة. وقد سجّل RFC 7764، المنشور مع RFC 7763، عددا منها وقدّم إرشادات لاستخدامها:

  • Markdown Extra: امتداد مبكر أضاف الحواشي وقوائم التعريفات والجداول.
  • MultiMarkdown: نكهة موجهة للكتابة الأكاديمية، فيها البيانات الوصفية والاستشهادات والإحالات المرجعية.
  • Pandoc Markdown: النكهة التي يستخدمها المحوّل Pandoc، وفيها امتدادات كثيرة لتأليف الكتب والأبحاث.

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

الصياغة الأساسية

الجزء الذي تحتاجه يوميا من Markdown يُتعلَّم في دقائق:

# Level one heading
## Level two heading
This paragraph has **bold**, *italic* and `code`.
- Bulleted list
- Second item
  - Indented sub-item
1. Numbered list
2. Second step
[Link text](https://example.com)
![Image description](image.png)
> Blockquote
```
Multi-line code block
```

وتبدو الجداول وقوائم المهام التي أضافتها GFM هكذا:

| Format | Extension |
|--------|-----------|
| Markdown | .md |
| Plain text | .txt |
- [x] Write the draft
- [ ] Review it

تُفصل الفقرات بأسطر فارغة. ويُعامَل فاصل السطر المفرد في معظم التطبيقات على أنه جزء من الفقرة نفسها، ولفرض سطر جديد أنهِ السطر بمسافتين. ويمكنك أيضا كتابة HTML مباشرة داخل Markdown، فـ CommonMark تسمح بذلك، وإن كانت بيئات مثل GFM تحجب بعض الوسوم لأسباب أمنية.

أين تُستخدم Markdown؟

  • تطوير البرمجيات: ملفات README وسجلات التغييرات وأدلة المساهمة، إضافة إلى البلاغات (issues) وتعليقات مراجعة الشيفرة على منصات مثل GitHub وGitLab.
  • التوثيق التقني: مولّدات المواقع الثابتة التي تبني مواقع ويب من ملفات Markdown.
  • تدوين الملاحظات: تخزّن تطبيقات ملاحظات كثيرة الملاحظات أو تصدّرها بصيغة Markdown.
  • منصات الدردشة والمجتمعات: تستخدم منصات مثل Reddit وDiscord نكهات من Markdown.
  • الكتابة والنشر: إنتاج HTML وPDF وDOCX وEPUB من مصدر Markdown واحد بأدوات مثل Pandoc.
  • أدوات الذكاء الاصطناعي: كثيرا ما تنسّق المساعدات الذكية القائمة على المحادثة إجاباتها بـ Markdown.

نقاط القوة والضعف

نقاط القوةنقاط الضعف
مقروءة حتى في صورتها الخامالنكهات المختلفة تتصرف بشكل مختلف
نص عادي: صغير وقابل للنقل ومناسب لإدارة الإصداراتلا خطوط ولا ألوان ولا تخطيط صفحات
تتحول بسهولة إلى HTML وPDF وWordلا جداول معقدة (خلايا مدمجة)
تُتعلَّم في دقائقالصور في ملفات منفصلة
غير مرتبطة بأي برنامجأخطاء المسافات والإزاحة تغيّر الناتج

ما البرامج التي تفتح ملفات Markdown؟

لأن Markdown نص عادي فهي تُفتح في أي محرر نصوص، بما في ذلك Notepad وTextEdit. وللمعاينة المنسقة يمكنك استخدام معاينة Markdown المدمجة في Visual Studio Code أو محررات مخصصة مثل Obsidian وTypora. ويعرض GitHub وGitLab ملفات .md في المستودعات تلقائيا. أما Word فلا يفتح Markdown نصا منسقا، فتحتاج إلى تحويل الملف أولا.

المشكلات الشائعة وحلولها

القائمة أو العنوان لا يظهر بشكل صحيح

تشترط CommonMark وجود مسافة بعد علامة العنوان: ## عنوان وليس ##عنوان. كما تحتاج القائمة التي تلي فقرة في الغالب إلى سطر فارغ بينهما لتُعرض بشكل صحيح.

الأسطر تلتصق ببعضها

فاصل السطر المفرد لا يقسم الفقرة. اترك سطرا فارغا لبدء فقرة جديدة، أو أنهِ السطر بمسافتين للانتقال إلى سطر جديد داخل الفقرة.

الجدول يعمل على منصة ولا يعمل على أخرى

الجداول ليست جزءا من Markdown الأصلية لغروبر ولا من نواة CommonMark، بل تأتي من امتدادات مثل GFM. تحقق من النكهة التي تدعمها المنصة المستهدفة.

فقرة تبدأ برقم تتحول إلى قائمة مرقمة

سطر مثل "2024. كان عاما حافلا" يبدأ بأرقام ونقطة، فقد يُحلَّل على أنه قائمة. اسبق النقطة بشرطة مائلة عكسية (2024\.) لمنع ذلك.

نصائح لتحويل ملفات Markdown

في محوّلنا تُرفع ملفات Markdown إلى خادمنا وتُحذف خلال 30 دقيقة. ونستخدم في القراءة مكتبة Markdig مع CommonMark وامتدادات على طريقة GitHub (الجداول وقوائم المهام والحواشي والروابط التلقائية).

  • يحتفظ تحويل Markdown إلى PDF وMarkdown إلى Word بالعناوين والقوائم وكتل الشيفرة والاقتباسات والجداول ذات الحدود. وتتحول مربعات قوائم المهام إلى الرمزين ☑ و☐ لتبقى ظاهرة في Word وPDF. ويُكتب النص افتراضيا بخط ذي زوائد (serif) بحجم 12 نقطة، وكتل الشيفرة بخط ثابت العرض.
  • يحوّل Markdown إلى HTML ملف README إلى صفحة ويب مستقلة بترميز أحرف مُعلَن.
  • وفي الاتجاه المعاكس، تنتج تحويلات Word إلى Markdown وHTML إلى Markdown وPDF إلى Markdown صيغة Markdown متوافقة مع GitHub: يُحتفظ بالعناوين والنص العريض والمائل والقوائم والجداول والروابط وكتل الشيفرة والاقتباسات، وتُحذف الخطوط والألوان وتخطيط الصفحة. وفي الجداول التي ليس لها صف عناوين يصبح الصف الأول صف العناوين، لأن جداول GFM تشترط وجوده. وتُهرَّب الفقرات العادية التي تبدأ برقم، مثل "1. بند"، حتى لا تتحول إلى قوائم دون قصد. ويُحفظ الملف بترميز UTF-8 دون BOM.

الأسئلة الشائعة

كيف أفتح ملف MD؟

يفتحه أي محرر نصوص. ولرؤيته منسقا استخدم معاينة Visual Studio Code أو محرر Markdown، وإن أردت قراءته في Word فحوّله إلى DOCX.

ما الفرق بين CommonMark وGitHub Flavored Markdown؟

تعرّف CommonMark الصياغة الأساسية لـ Markdown بقواعد دقيقة. أما GFM فهي مجموعة أشمل تضيف فوق CommonMark امتدادات مثل الجداول وقوائم المهام والنص المشطوب والروابط التلقائية الموسّعة.

هل يمكنني إنشاء جداول في Markdown؟

نعم، مع امتدادات مثل GFM يمكنك كتابة جداول بسيطة باستخدام الخطوط العمودية والشرطات. أما البنى المعقدة كالخلايا المدمجة فاستخدم لها جدول HTML أو أعدّ المستند في Word.

ما الفرق بين Markdown وHTML؟

Markdown صيغة كتابة أبسط صُممت لتُحوَّل إلى HTML. لا تستطيع التعبير عن كل ما تعبّر عنه HTML، لكن صورتها الخام أسهل قراءة بكثير. ويظل بإمكانك كتابة HTML داخل Markdown عند الحاجة.

هل لـ Markdown معيار رسمي؟

وصف غروبر الأصلي ليس مواصفة رسمية. وأكثر تعريف دقيق مقبول على نطاق واسع اليوم هو CommonMark، وقد سُجّل نوع الوسائط text/markdown بموجب RFC 7763 في مارس 2016.

المصادر

محولات ذات صلة

كل المقالات