مُعايِن مخططات Mermaid
معاينة
Mermaid لغة لرسم المخططات تعتمد على النص: تكتب بنصٍّ عادي الشكل الذي تريده للمخطط، فيُعرَض بصيغة SVG. وهي تدعم المخططات الانسيابية والمخططات التسلسلية ومخططات الفئات وآلات الحالة ومخططات ER (الكيانات والعلاقات) ومخططات جانت والمخططات الدائرية والخرائط الذهنية ومخططات فروع Git. يشغّل هذا المُعايِن مُحلِّل Mermaid الرسمي داخل المتصفح، ويُحدِّث ملف SVG مع كل حرف تكتبه، فتُجرِّب وتُعدِّل بحرية قبل أن تدفع مخططًا نصف مكسور إلى ملف README.
كيف تعايِن مخطط Mermaid
-
1
اختر نوع المخطط
انسيابي، تسلسلي، فئات، حالة، ER، جانت، دائري، مخطط Git، خريطة ذهنية.
-
2
اكتب صيغة Mermaid
في اللوحة اليمنى. يُحدِّث المُحلِّل المعاينة مع كل ضغطة مفتاح.
-
3
راقب عرض SVG
في اللوحة الأخرى. تظهر الأخطاء مباشرةً مع تحديد السطر المسبِّب لها.
-
4
صدِّر النتيجة
انسخ SVG أو نزِّل PNG أو انسخ شفرة Mermaid لِلَصْقها في GitHub أو MkDocs.
أنواع المخططات التسعة في لمحة
| النوع | بادئة الصيغة | يُستخدَم في |
|---|---|---|
| مخطط انسيابي | flowchart TD |
أشجار القرار وسير العمليات |
| مخطط تسلسلي | sequenceDiagram |
استدعاءات واجهات API والتفاعلات بين الأنظمة عبر الزمن |
| مخطط فئات | classDiagram |
معمارية البرمجة كائنية التوجه ونماذج المجال |
| مخطط حالة | stateDiagram-v2 |
آلات الحالة المحدودة |
| مخطط ER | erDiagram |
مخططات قواعد البيانات |
| مخطط جانت | gantt |
الجداول الزمنية للمشاريع |
| مخطط دائري | pie |
النسب المئوية من الكل |
| مخطط Git | gitGraph |
تصوير بنية الفروع |
| خريطة ذهنية | mindmap |
العصف الذهني الهرمي |
بداية سريعة مع المخطط الانسيابي
flowchart LR
A[Start] --> B{Is it working?}
B -- Yes --> C[Great]
B -- No --> D[Debug]
D --> B
كلمات الاتجاه المفتاحية: TD من الأعلى إلى الأسفل، LR من اليسار إلى اليمين، RL من اليمين إلى اليسار، BT من الأسفل إلى الأعلى.
أشكال العُقَد: [rect] مستطيل، (rounded) مستطيل بزوايا دائرية، {diamond} مُعيَّن، ((circle)) دائرة، >flag] راية، [[subroutine]] روتين فرعي.
بداية سريعة مع المخطط التسلسلي
sequenceDiagram
participant U as User
participant API
participant DB
U->>API: POST /login
API->>DB: SELECT user
DB-->>API: record
API-->>U: 200 + token
الرمز ->> سهم متصل (طلب)، و-->> سهم متقطع (استجابة). أما participant X as Label فيربط اسمًا مختصرًا بتسمية تظهر في المخطط.
أخطاء شائعة
- سطر جديد ناقص بعد البادئة. يجب أن يكون السطر الأول
flowchart TDأو ما يماثله، وأن يقف وحده. - محارف محجوزة داخل تسميات العُقَد. الأقواس بأنواعها وعلامات الاقتباس داخل التسمية تحتاج إلى تهريب أو إحاطة بعلامتَي اقتباس مزدوجتين:
A["Node (v2)"]. - رموز مخطط الفئات. البادئات
+publicعام و-privateخاص و#protectedمحمي و~packageعلى مستوى الحزمة، والنمط<<interface>>، والوراثة<|--، والتركيب*--، والتجميعo--. - صيغة تواريخ جانت. الصيغة الافتراضية هي
YYYY-MM-DD، وإن اختلفت فغيِّرها بالسطرdateFormat YYYY-MM-DDفي أعلى المخطط.
أين يُعرَض Mermaid فعليًا
- GitHub يعرض كتل الشفرة المُعلَّمة بـ
mermaidفي المسائل وطلبات الدمج وملف README.md. - GitLab كذلك، بدعم أصلي منذ عام 2022.
- MkDocs عبر إضافة
pymdown-extensions. - Docusaurus وHugo عبر الإضافات.
- Obsidian بمُعارِض مدمج.
- VS Code عبر إضافة معاينة Mermaid.
الأسئلة الشائعة
يدعم GitHub معظم الأنواع: المخطط الانسيابي والتسلسلي ومخطط الفئات والحالة وER وجانت والدائري. أما الإضافات الأحدث (مثل رحلة المستخدم والخريطة الذهنية) فقد تتأخر. جرِّب المخطط في مسألة مسوَّدة قبل إدراجه في ملف README.
استخدم تعليمتَي classDef وclass لإسناد أصناف CSS إلى العُقَد. كما يدعم Mermaid تخصيص السمة عبر كتلة توجيه في أعلى الشفرة: %%{init: {"theme": "dark"}}%%.
نعم. تُعرَض المعاينة بصيغة SVG، فيمكنك تنزيل SVG مباشرةً (يتمدد بلا حدود من غير فقدان جودة) أو تصدير PNG بدقة 1x أو 2x أو 3x.
السبب الأشيع محرف محجوز داخل تسمية عقدة. أحِط أي تسمية تحتوي أقواسًا أو علامات اقتباس بعلامتَي اقتباس مزدوجتين: A["Node name (v2)"]. ورسالة الخطأ تشير إلى السطر المسبِّب للمشكلة.
لا. تعمل مكتبة Mermaid بالكامل داخل متصفحك وتعرض المخطط محليًا. لا يُرسَل أي شيء إلى أي خادم.
أدوات ذات صلة
مرجع جدول ASCII
جدول ASCII كامل من 0 إلى 127 مع التمثيل العشري والست عشري والثماني والثنائي والمرجع الرقمي في HTML لكل محرف، بما في ذلك أكواد التحكم مثل NUL وLF وDEL.
مرجع أحرف HTML
قائمة قابلة للبحث بكيانات HTML، مع رموزها المسمّاة والرقمية، بالإضافة إلى خيار النسخ بنقرة واحدة للأحرف والرموز الخاصة.
عدّاد FPS
قِس معدل الإطارات FPS في المتصفح عبر requestAnimationFrame: تنعيم، وأدنى وأقصى معدل إطارات، وحد تنبيه، ورسم بياني اختياري. يعمل محليًا بلا رفع ملفات وبلا API.
منسق JSON
الصق JSON لتنسيقه بمسافتين أو أربع مسافات، أو تصغيره إلى ناتج مضغوط، أو فحص بنيته بسرعة قبل نسخ النتيجة.
محول الثنائي إلى الست عشري
حوّل الإدخال الثنائي إلى قيمة ست عشرية بأحرف كبيرة. يتم تجاهل غير 0 و1 ولا تُحفظ الأصفار البادئة.
محول ASCII إلى Hex
حوّل نص ASCII إلى قيم بايت سداسية عشرية. يستخدم الناتج رقمين ست عشريين لكل محرف، جاهزة لتفريغات الذاكرة أو تتبعات الحزم أو جداول البرامج الثابتة.