استخدم مخططات فرعية متداخلة للمخططات الانسيابية للحاويات ذات العناوين، بما في ذلك الكتل الطرفية. إذا كان عرض الحاويات الفارغة سيئًا، فأضف فاصلًا غير مرئي داخل كل كتلة طرفية. يحافظ ذلك على التسلسل الهرمي الظاهر؛ تحقّق من النتيجة في عارض Obsidian المثبّت لديك.

يبني هذا الدليل مخططًا محايدًا واحدًا: كتلة خارجية بعنوان Collection، تحتوي على Group A وGroup B، مع حاويات طرفية ذات عناوين داخل كل مجموعة. المطلوب هو الحفاظ على مظهر هذه الكتل الطرفية كحاويات ذات عناوين، بدلًا من استبدالها بمستطيلات عادية تحمل تسميات.

ما الذي ينبغي أن يمثّل كتلة طرفية ذات عنوان؟

مثّل كل حاوية ظاهرة باستخدام subgraph، سواء احتوت على كتلة أخرى ذات معنى أم لا. توثّق Mermaid المخططات الفرعية ومعرّفاتها الصريحة والتداخل في أمثلة المخططات الانسيابية. يؤدي تصريح عقدة عادي مثل leafA["Block A"] إلى إنشاء عقدة ذات تسمية؛ لكنه لا يصرّح عن حاوية ذات عنوان. راجع المخططات الانسيابية — الصياغة الأساسية في Mermaid.

في هذا المثال، ميّز بين النموذج المرئي وما يدعم تخطيطه. تمثّل Collection والمجموعات والكتل الطرفية العناصر ذات المعنى. أما الفاصل فهو تفصيل تنفيذي يُستخدم لتوفير محتوى داخل الحاوية الطرفية لأغراض التخطيط. وإضافة هذا العنصر المساعد لا تغيّر تصريح الكتلة الطرفية من مخطط فرعي إلى عقدة.

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

تحقّق من العارض الذي يستخدمه إصدار Obsidian على جهاز Mac لديك

في Obsidian، افتح Settings من الشريط الجانبي، ثم اختر General وسجّل إصدار التطبيق. توضح وثائق الإعدادات في Obsidian أن معلومات الإصدار موجودة ضمن General. استخدم هذا الإصدار عند اختيار ملاحظات الإصدار ذات الصلة.

هناك فرق جوهري بين العوارض. تصف ملاحظات الإصدار الرسمية الصادرة في 22 أكتوبر 2026 إصدار سطح المكتب 1.15.0 بأنه وصول مبكر، وتذكر أنه يعرض صياغة Mermaid عبر مكتبة Obsidian المسماة Pele، مع التوافق مع صياغة Mermaid 12.1.0. كما يغيّر الإصدار فئات المخطط المُنشأة إلى فئات Pele. لا تفترض أن إصدارًا أقدم يستخدم Pele، أو أن التوافق يعني تطابق المخرجات مع Mermaid.js. راجع Obsidian 1.15.0 لسطح المكتب (وصول مبكر).

تعرض وثائق Mermaid التي جرى استرجاعها لهذا الدليل الإصدار 12.2.0. وهذا إصدار منفصل عن مستوى التوافق المذكور في ملاحظات إصدار Obsidian. تعامل مع الوثائق والمحرر عبر الإنترنت والتطبيق المثبّت لديك على أنها بيئات منفصلة إلى أن تتحقق من المثال نفسه في كل منها.

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

أنشئ الحاويات المتداخلة في ملاحظة Obsidian

افتح ملاحظة في وضع التحرير والصق الكتلة الكاملة أدناه، بما فيها علامتا السياج الافتتاحية والختامية. توثّق Obsidian المخططات بصيغة Mermaid على هيئة كتل تعليمات برمجية محاطة بسياج، مع معرّف اللغة mermaid. لا حاجة إلى أي إضافة مخططات إضافية لاستخدام تنسيق الملاحظات الموثّق هذا. راجع صياغة التنسيق المتقدم.

```mermaid
flowchart TB
    subgraph collection["Collection"]
        subgraph groupA["Group A"]
            subgraph blockA["Block A"]
                spacerA[" "]
            end
            subgraph blockB["Block B"]
                spacerB[" "]
            end
        end
        subgraph groupB["Group B"]
            subgraph blockC["Block C"]
                spacerC[" "]
            end
        end
    end

    classDef spacer fill:transparent,stroke:transparent,color:transparent;
    class spacerA,spacerB,spacerC spacer;
```

اضغط Cmd+E للتبديل بين التحرير وReading view. استخدم وضع القراءة لمعاينة المخطط النهائي من دون أن يكشف مؤشر التحرير عن مصدره. توثّق أوضاع العرض والتحرير في Obsidian هذه الاختصارات.

تتضمن النتيجة المقصودة ست حاويات ظاهرة ذات عناوين: مجموعة واحدة ومجموعتان وثلاث كتل طرفية. وتحتوي كل كتلة طرفية على عنصر مساعد تسميته مسافة واحدة. تطلب الفئة spacer جعل التعبئة والحد والنص شفافة. يجمع هذا بين آلية الفئات الموثّقة في Mermaid وحل بديل للتخطيط؛ وتوثّق Mermaid classDef وإسناد الفئات في مرجع تنسيق المخططات الانسيابية.

جرى فحص المثال وفق الصياغة الموثّقة؛ لكنه لم يُعرض في جلسة Obsidian على Mac لأغراض هذا المقال. لذلك يعتمد معيار القبول على الفحص البصري المحلي: ينبغي أن تظهر العناوين الستة، وأن تحتوي كل مجموعة على كتلها الطرفية المخصصة لها، وألا يظهر أي مستطيل للفواصل. أما التباعد الدقيق ومواضع العناصر المتجاورة فليسا من معايير القبول.

غيّر التسميات من دون تغيير التسلسل الهرمي

ابدأ بتغيير العناوين الموضوعة بين علامتي اقتباس فقط. أبقِ collection وgroupA وblockA والمعرّفات الأخرى مختلفة. فهذا يسهل مقارنة النسخة المعدّلة بالمثال الأساسي.

لإضافة كتلة طرفية أخرى، انسخ مخططًا فرعيًا كاملًا لكتلة طرفية، وامنح مخططها الفرعي والفاصل معرّفَين جديدَين، ثم أضف معرّف الفاصل الجديد إلى إسناد الفئة النهائي. ضعه قبل end الخاص بالمجموعة الحاوية. فمثلًا، تنتمي كتلة طرفية رابعة داخل Group B إلى جانب blockC، ضمن groupB.

اقرأ عبارات الإغلاق من الداخل إلى الخارج: أغلق الكتلة الطرفية، ثم مجموعتها، ثم المجموعة الكلية. يجعل التنسيق البادئ هذا الهيكل ظاهرًا أثناء التحرير، لكن موضع كل end هو ما يجب أن يعبّر عنه المصدر على نحو صحيح.

لماذا نستخدم الفواصل بدلًا من المخططات الفرعية الفارغة؟

اختلف سلوك الحاويات الفارغة بين العوارض والإصدارات. تشير مشكلة Mermaid 5402 إلى فشل مخطط فرعي فارغ مع ELK في Mermaid 10.8.0، بينما يعمل مثال Dagre المرفق. وهذا تقرير تاريخي عن إعداد محدد، ولا يثبت أن كل عارض حالي يرفض المخططات الفرعية الفارغة. راجع عارض Elk لا يعمل مع مخطط فرعي فارغ.

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

استخدم دليل القرار هذا لاختيار مدى صرامة المصدر المطلوب:

المتطلب النهج المبدئي ما ينبغي التحقق منه
يجب أن تظل الكتل الطرفية الظاهرة حاويات ذات عناوين مخططات فرعية متداخلة مع فواصل شفافة العناوين والاحتواء والعناصر المساعدة المخفية
يجب ألا يحتوي المصدر على أي عقد مساعدة جرّب مخططات فرعية طرفية فارغة في العارض المستهدف ما إذا كان عرض كل كتلة طرفية فارغة مقبولًا
ستحتوي الكتل الطرفية لاحقًا على عناصر فعلية أبقِ المخططات الفرعية الطرفية واستبدل فواصلها أزِل فقط العناصر المساعدة التي لم تعد مطلوبة
تتطلب الكتل وضعًا مقصودًا في أعمدة قيّم مخططات Mermaid الكتلية على نحو منفصل دعم الصياغة في الإصدار المثبّت وطريقة عرض العناوين

تصف وثائق Mermaid المخصصة للمخططات الكتلية الكتل المركبة والأعمدة والتباعد الصريح. ويستحق تقييم هذه الميزات عندما يكون تحديد المواضع هو المهمة الأساسية. لكنها لا تثبت بحد ذاتها أن التحويل سيحافظ على طريقة العرض هذه للحاويات ذات العناوين كما هي تمامًا. راجع وثائق المخططات الكتلية.

شخّص النتيجة إذا بدت غير صحيحة

غيّر أمرًا واحدًا في كل مرة. احتفظ بنسخة من المثال الأساسي الكامل في ملاحظة منفصلة لتتمكن من التمييز بين اختلاف العارض وخطأ التحرير.

  1. تعرض الملاحظة التعليمات البرمجية بدلًا من المخطط. تحقّق من أن السياج الافتتاحي يستخدم mermaid، ثم انتقل إلى Reading view. قارن السياج بتنسيق المخططات الموثّق في Obsidian.
  2. تبدو كتلة طرفية كمستطيل عادي يحمل تسمية. افحص تصريحها. ينبغي أن يبدأ بـsubgraph، وأن يكون الفاصل في سطر منفصل داخلها.
  3. يظل مستطيل صغير ظاهرًا داخل كتلة طرفية. طابق معرّف الفاصل مع عبارة class النهائية. أزِل التنسيق مؤقتًا لتحديد العنصر المساعد الذي تراه، ثم أعده.
  4. تظهر كتلة ضمن مجموعة خاطئة. تحقّق من تسلسل عبارات end الختامية قبل تعديل إعدادات التخطيط.
  5. يعمل المخطط عبر الإنترنت لكنه يختلف في Obsidian. قارن ملاحظات إصدار التطبيق المثبّت بإصدار العارض عبر الإنترنت. احتفظ بالمثال المحلي العامل مرجعًا لك.

حافظ على الاحتواء قبل تعديل المواضع

بعد التأكد من صحة العناوين والاحتواء، قرر ما إذا كان الترتيب مقروءًا بما يكفي. لا تستبدل مخططًا فرعيًا طرفيًا بعقدة لمجرد تصغير مستطيله: فهذا التعديل يغيّر التمثيل الذي أردت الحفاظ عليه.

وبالمثل، أضف موصلات فقط عندما يحتاج المخطط إلى علاقة تتجاوز الاحتواء. توثّق Mermaid قيدًا على الاتجاه: ربط عقدة داخل مخطط فرعي بعقدة خارجه يجعل ذلك المخطط الفرعي يرث اتجاه العنصر الأب. أعد فحص التخطيط بعد إضافة هذه الحواف. راجع الاتجاه في المخططات الفرعية.

اختم بفحص الملاحظة عند العرض الذي تقرؤها به عادةً. احتفظ بالنسخة التي تعرض بوضوح المجموعة الكلية ومجموعاتها وكتلها الطرفية ذات العناوين. والنتيجة المفيدة هي تسلسل هرمي مقروء للاحتواء، تبقى فيه الكتل الطرفية مخططات فرعية، مع فهم واضح لأي عناصر تخطيط مساعدة غير مرئية وسهولة إزالتها لاحقًا.

المصادر