फ्लोचार्ट
ग्राफ़िकल अभिव्यक्ति
माइंड मैप
संरचित अभिव्यक्ति
नोट्स
कुशल अभिव्यक्ति

फ़्लोचार्टसिंटैक्स

मूल परिभाषा

फ़्लोचार्ट नोड्स (ज्यामितीय आकृतियों) और कनेक्टिंग लाइनों (तीर या रेखाओं) से बना होता है। Mermaid कोड परिभाषित करता है कि नोड्स और कनेक्टिंग लाइनें कैसे बनाई जाती हैं, और यह कई प्रकार के तीरों, बहुदिशीय तीरों तथा सबग्राफ़ के साथ मनमाने लिंक का समर्थन करता है।

चेतावनी यदि आप फ़्लोचार्ट नोड में "end" शब्द का उपयोग करते हैं, तो पहले अक्षर या पूरे शब्द को बड़े अक्षरों में लिखें (उदाहरण: "End" या "END"); पूरी तरह छोटे अक्षरों में "end" दर्ज करने से फ़्लोचार्ट में त्रुटि होगी।

चेतावनी यदि आप फ़्लोचार्ट नोड्स जोड़ते समय पहले अक्षर के रूप में "o" या "x" का उपयोग करते हैं, तो अक्षर से पहले एक स्पेस जोड़ें या अक्षर को बड़ा करें (उदाहरण: "dev--- ops", "dev---Ops")।

एक नोड (डिफ़ॉल्ट)

कोड
                            
कॉपी करें
एम्बेड
--- title: Node --- flowchart LR id
जानकारी

id ही वह सामग्री है जो बॉक्स में दिखाई जाती है।

सुझाव

फ़्लोचार्ट बनाने के सिंटैक्स में flowchart के अलावा graph का भी उपयोग किया जा सकता है।

टेक्स्ट वाला एक नोड

आप बॉक्स के लिए id से भिन्न टेक्स्ट भी सेट कर सकते हैं। यदि आप ऐसा कई बार करते हैं, तो सिस्टम उस नोड के लिए अंतिम बार निर्दिष्ट टेक्स्ट का उपयोग करेगा। इसके अलावा, यदि बाद में नोड के लिए कनेक्टिंग लाइन परिभाषित की जाती है, तो टेक्स्ट परिभाषा छोड़ी जा सकती है; बॉक्स रेंडर करते समय पहले परिभाषित टेक्स्ट का उपयोग किया जाएगा।

कोड
                            
कॉपी करें
एम्बेड
--- title: Node with text --- flowchart LR id1[This is the text in the box]

Unicode टेक्स्ट

Unicode टेक्स्ट को दोहरे उद्धरण चिह्नों में लपेटें।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id["This ❤ Unicode"]

Markdown फ़ॉर्मेट

Markdown टेक्स्ट को दोहरे उद्धरण चिह्नों और बैकटिक का उपयोग करके लपेटें

कोड
                            
कॉपी करें
एम्बेड
flowchart LR markdown["`This **is** _Markdown_`"] newLines["`Line1 Line 2 Line 3`"] markdown --> newLines

दिशा

फ़्लोचार्ट की दिशा घोषित करता है

दर्शाता है कि फ़्लोचार्ट ऊपर से नीचे की ओर व्यवस्थित है (TD या TB)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD Start --> Stop

फ़्लोचार्ट की दिशाओं में शामिल हैं:

  • TB - ऊपर से नीचे
  • TD - ऊपर से नीचे (ऊपर से नीचे के समान)
  • BT - नीचे से ऊपर
  • RL - दाएँ से बाएँ
  • LR - बाएँ से दाएँ

नोड आकृति

गोल कोनों वाला आयत

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1(This is the text in the box)

स्टेडियम आकृति

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1([This is the text in the box])

सबप्रोसेस

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1[[This is the text in the box]]

डेटाबेस

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1[(Database)]

वृत्त

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1((This is the text in the circle))

असममित आकृति

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1>This is the text in the box]

हीरा (डायमंड)

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1{This is the text in the box}

षट्भुज

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1{{This is the text in the box}}

समांतर चतुर्भुज

कोड
                            
कॉपी करें
एम्बेड
flowchart TD id1[/This is the text in the box/]

उल्टा समांतर चतुर्भुज

कोड
                            
कॉपी करें
एम्बेड
flowchart TD id1[\This is the text in the box\]

समलंब चतुर्भुज

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A[/ProcessOn\]

उल्टा समलंब चतुर्भुज

कोड
                            
कॉपी करें
एम्बेड
flowchart TD B[\ProcessOn/]

दोहरा वृत्त

कोड
                            
कॉपी करें
एम्बेड
flowchart TD id1(((This is the text in the circle)))

Mermaid फ़्लोचार्ट नोड आकृति विस्तार

Mermaid ने फ़्लोचार्ट बनाने के लचीलेपन और सटीकता को बढ़ाने के लिए 30 नई आकृतियाँ पेश की हैं। ये नई आकृतियाँ प्रक्रियाओं, निर्णयों, ईवेंट, डेटा स्टोरेज और फ़्लोचार्ट के अन्य तत्वों को सहजता से दर्शाने के लिए अधिक विकल्प प्रदान करती हैं, जिससे स्पष्टता और सिमैंटिक अर्थ बढ़ता है।

आकृति परिभाषित करने का नया सिंटैक्स

Mermaid अब बढ़ती आकृतियों के अनुरूप आकृति प्रकारों को परिभाषित करने के लिए एक सामान्य सिंटैक्स का समर्थन करता है। यह सिंटैक्स आपको स्पष्ट और लचीले फ़ॉर्मेट का उपयोग करके नोड के लिए विशिष्ट आकृति निर्दिष्ट करने की अनुमति देता है।

                            
कॉपी करें
एम्बेड
A@{ shape: rect }

यह सिंटैक्स नोड A को आयत के रूप में बनाता है। यह [A] या A की तरह रेंडर होता है।

नोड आकृतियों की पूरी सूची

निम्नलिखित नई पेश की गई नोड आकृतियों तथा उनके संगत अर्थ, संक्षिप्त नाम और उपनामों की पूरी सूची है:

सिमैंटिक नाम ग्राफ़ सिंटैक्स सिंटैक्स संक्षिप्त नाम सिंटैक्स विकल्प विस्तृत विवरण
कार्ड Notched Rectangle notch-rect card, notched-rectangle एक कार्ड दर्शाता है
क्रमबद्ध करना Hourglass hourglass collate क्रमबद्ध करने की क्रिया दर्शाता है
संचार लिंक Lightning Bolt bolt com-link, lightning-bolt संचार लिंक
टिप्पणी Curly Brace brace brace-l, comment टिप्पणी जोड़ें
दाईं ओर टिप्पणी Curly Brace brace-r टिप्पणी जोड़ें
दोनों ओर घुंघराले कोष्ठक वाली टिप्पणी Curly Braces braces टिप्पणी जोड़ें
डेटा इनपुट या आउटपुट Lean Right lean-r in-out, lean-right इनपुट या आउटपुट दर्शाता है
डेटा इनपुट या आउटपुट Lean Left lean-l lean-left, out-in आउटपुट या इनपुट दर्शाता है
डेटाबेस Cylinder cyl cylinder, database, db डेटाबेस स्टोरेज
निर्णय Diamond diam decision, diamond, question निर्णय चरण
विलंब Half-Rounded Rectangle delay half-rounded-rectangle विलंब दर्शाता है
प्रत्यक्ष अभिगम स्टोरेज Horizontal Cylinder h-cyl das, horizontal-cylinder प्रत्यक्ष अभिगम स्टोरेज
डिस्क स्टोरेज Lined Cylinder lin-cyl disk, lined-cylinder डिस्क स्टोरेज
डिस्प्ले Curved Trapezoid curv-trap curved-trapezoid, display दर्शाता है कि सूचना स्क्रीन, टर्मिनल आदि डिवाइस पर प्रदर्शित होती है
विभाजित प्रोसेस Divided Rectangle div-rect div-proc, divided-process, divided-rectangle विभाजित प्रोसेस आकृति
दस्तावेज़ Document doc document एक दस्तावेज़ दर्शाता है
ईवेंट Rounded Rectangle rounded event एक ईवेंट दर्शाता है
निष्कर्षण Triangle tri extract, triangle निष्कर्षण प्रक्रिया
फ़ोर्क/मर्ज Filled Rectangle fork join फ़्लोचार्ट में फ़ोर्क या मर्ज
आंतरिक स्टोरेज Window Pane win-pane internal-storage, window-pane आंतरिक स्टोरेज
कनेक्शन पॉइंट Filled Circle f-circ filled-circle, junction कनेक्शन पॉइंट
रेखा सहित दस्तावेज़ Lined Document lin-doc lined-document रेखा सहित दस्तावेज़
रेखा/छाया प्रोसेस Lined Rectangle lin-rect lin-proc, lined-process, lined-rectangle, shaded-process रेखा सहित प्रोसेस आकृति
लूप सीमा Trapezoidal Pentagon notch-pent loop-limit, notched-pentagon लूप सीमा चरण
मैनुअल फ़ाइल Flipped Triangle flip-tri flipped-triangle, manual-file मैनुअल फ़ाइल क्रिया
मैनुअल इनपुट Sloped Rectangle sl-rect manual-input, sloped-rectangle मैनुअल इनपुट चरण
मैनुअल ऑपरेशन Trapezoid Base Top trap-t inv-trapezoid, manual, trapezoid-top एक मैनुअल कार्य दर्शाता है
एकाधिक दस्तावेज़ Stacked Document docs documents, st-doc, stacked-document 多个文档
एकाधिक प्रोसेस Stacked Rectangle st-rect processes, procs, stacked-rectangle 多个进程
अनियमित आकृति Odd odd अनियमित आकृति
पेपर टेप Flag flag paper-tape पेपर टेप
तैयारी शर्त Hexagon hex hexagon, prepare तैयारी या शर्त चरण
प्राथमिकता क्रिया Trapezoid Base Bottom trap-b priority, trapezoid, trapezoid-bottom प्राथमिकता क्रिया
प्रोसेस Rectangle rect proc, process, rectangle मानक प्रोसेस आकृति
प्रारंभ Circle circle circ प्रारंभ बिंदु
प्रारंभ Small Circle sm-circ small-circle, start छोटा वृत्त प्रारंभ बिंदु
स्टॉप Double Circle dbl-circ double-circle समापन बिंदु दर्शाता है
स्टॉप Framed Circle fr-circ framed-circle, stop समापन बिंदु दर्शाता है
डेटा संग्रहीत करें Bow Tie Rectangle bow-rect bow-tie-rectangle, stored-data डेटा संग्रहीत करें
सबप्रोसेस Framed Rectangle fr-rect framed-rectangle, subproc, subprocess, subroutine सबप्रोसेस, सबरूटीन
सारांश Crossed Circle cross-circ crossed-circle, summary सारांश
टैग किया गया दस्तावेज़ Tagged Document tag-doc tagged-document टैग किया गया दस्तावेज़
मानकीकृत प्रोसेस Tagged Rectangle tag-rect tag-proc, tagged-process, tagged-rectangle 已标准进程
अंतिम बिंदु Stadium stadium pill, terminal अंतिम बिंदु
टेक्स्ट ब्लॉक Text Block text टेक्स्ट ब्लॉक

निम्नलिखित नई पेश की गई आकृतियों का उपयोग करने वाले फ़्लोचार्ट कोड का उदाहरण है:

कोड
                            
कॉपी करें
एम्बेड
flowchart RL A@{ shape: manual-file, label: "File Handling"} B@{ shape: manual-input, label: "User Input"} C@{ shape: docs, label: "Multiple Documents"} D@{ shape: procs, label: "Process Automation"} E@{ shape: paper-tape, label: "Paper Records"}

प्रोसेस

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: rect, label: "This is a process" }

ईवेंट

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: rounded, label: "This is an event" }

चाइल्ड प्रोसेस

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: subproc, label: "This is a subprocess" }

डेटाबेस (सिलेंडर)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: cyl, label: "Database" }

प्रारंभ (वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: circle, label: "Start" }

अनियमित आकृति

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: odd, label: "Odd shape" }

निर्णय (हीरा)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: diamond, label: "Decision" }

तैयारी शर्त (षट्भुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: hex, label: "Prepare conditional" }

डेटा इनपुट/आउटपुट (दाईं ओर झुका)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: lean-r, label: "Input/Output" }

डेटा इनपुट/आउटपुट (बाईं ओर झुका)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: lean-l, label: "Input/Output" }

प्राथमिकता क्रिया (समलंब चतुर्भुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: trap-b, label: "Priority action" }

मैनुअल ऑपरेशन (उल्टा समलंब चतुर्भुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: trap-t, label: "Manual operation" }

स्टॉप (दोहरा वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: dbl-circ, label: "Stop" }

टेक्स्ट ब्लॉक

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: text, label: "This is a text block" }

कार्ड (कटे कोने वाला आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: notch-rect, label: "Card" }

रेखा/छाया सहित प्रोसेस

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: lin-rect, label: "Lined process" }

प्रारंभ (छोटा वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: sm-circ, label: "Small start" }

स्टॉप (बॉक्स वाला वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: framed-circle, label: "Stop" }

फ़ोर्क/मर्ज (लंबा आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: fork, label: "Fork or Join" }

क्रमबद्ध करना (रेतघड़ी)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: hourglass, label: "Collate" }

टिप्पणी (घुंघराले कोष्ठक)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: comment, label: "Comment" }

दाईं ओर टिप्पणी (दायाँ घुंघराला कोष्ठक)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: brace-r, label: "Comment" }

टिप्पणी (दोनों ओर कोष्ठक वाली)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: braces, label: "Comment" }

संचार लिंक (बिजली)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: bolt, label: "Communication link" }

दस्तावेज़

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: doc, label: "Document" }

विलंब (आधा गोल कोने वाला आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: delay, label: "Delay" }

直接存取存储(水平圆柱)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: das, label: "Direct access to storage" }

डिस्क स्टोरेज (खाँचेदार सिलेंडर)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: lin-cyl, label: "Disk storage" }

डिस्प्ले (डिस्प्ले आकृति)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: curv-trap, label: "Display" }

विभाजित प्रोसेस (विभाजित आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: div-rect, label: "Divided process" }

निष्कर्षण (छोटा त्रिभुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: tri, label: "Extract" }

आंतरिक स्टोरेज (विंडो पैनल)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: win-pane, label: "Internal storage" }

कनेक्शन पॉइंट (ठोस वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: f-circ, label: "Connect" }

रेखा सहित दस्तावेज़

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: lin-doc, label: "Lined document" }

लूप सीमा (कटे कोने वाला पंचभुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: notch-pent, label: "Loop limit" }

मैनुअल फ़ाइल (पलटा त्रिभुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: flip-tri, label: "Manual file" }

मैनुअल इनपुट (समकोण समलंब चतुर्भुज)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: sl-rect, label: "Manual input" }

एकाधिक दस्तावेज़ (स्टैक किए दस्तावेज़)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: docs, label: "Multi-document" }

एकाधिक प्रोसेस (स्टैक किए आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: processes, label: "Multiple processes" }

पेपर टेप (झंडा)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: flag, label: "Paper tape" }

डेटा संग्रहीत करें (बो टाई आयत)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: bow-rect, label: "Data stored" }

सारांश (क्रॉस वाला वृत्त)

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: cross-circ, label: "Summary" }

टैग किया गया दस्तावेज़

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: tag-doc, label: "Tagged document" }

चिह्नित प्रोसेस

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A@{ shape: tag-rect, label: "Tagged process" }

Mermaid फ़्लोचार्ट में विशेष आकृतियाँ

Mermaid ने आपके फ़्लोचार्ट को बेहतर बनाने के लिए इमेज भी पेश की हैं, जिससे आप सीधे फ़्लोचार्ट में इमेज शामिल कर सकते हैं, जो अधिक विज़ुअल संदर्भ और स्पष्टता प्रदान करती हैं।

इमेज आकृति

आप फ़्लोचार्ट में इमेज डालने के लिए image का उपयोग कर सकते हैं; इमेज परिभाषित करने का सिंटैक्स इस प्रकार है:

                            
कॉपी करें
एम्बेड
flowchart TD A@{ img: "https://www.processon.com/image.png", label: "Image Label", pos: "t", w: 60, h: 60, constraint: "off" }

पैरामीटर

  • img: प्रदर्शित करने के लिए इमेज का URL पता।
  • label: इमेज से जुड़ा टेक्स्ट लेबल, जो कोई भी स्ट्रिंग हो सकता है। यदि परिभाषित नहीं है, तो कोई लेबल प्रदर्शित नहीं होगा।
  • pos: लेबल की स्थिति। यदि परिभाषित नहीं है, तो लेबल डिफ़ॉल्ट रूप से इमेज के निचले भाग में होगा।
  • w: इमेज की चौड़ाई। यदि परिभाषित नहीं है, तो डिफ़ॉल्ट रूप से इमेज की प्राकृतिक चौड़ाई होगी।
  • h: इमेज की ऊँचाई। यदि परिभाषित नहीं है, तो डिफ़ॉल्ट रूप से इमेज की प्राकृतिक ऊँचाई होगी।
  • constraint: निर्धारित करता है कि इमेज नोड के आकार को सीमित करती है या नहीं। यह सेटिंग यह भी सुनिश्चित करती है कि इमेज अपना मूल पहलू अनुपात बनाए रखे और चौड़ाई के अनुसार ऊँचाई समायोजित करे। यदि परिभाषित नहीं है, तो डिफ़ॉल्ट रूप से off होता है।

इमेज आपके फ़्लोचार्ट को अतिरिक्त लचीलापन और विज़ुअल आकर्षण प्रदान करती हैं, जिससे यह अधिक सूचनात्मक और आकर्षक बनता है।

नोड्स के बीच कनेक्शन

नोड्स को कनेक्टिंग लाइनों और तीरों के माध्यम से जोड़ा जा सकता है। विभिन्न प्रकार के लिंक होते हैं, और लिंक पर टेक्स्ट स्ट्रिंग भी जोड़ी जा सकती है।

तीर वाला लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-->B

एक खुला लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A --- B

टेक्स्ट वाला लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-- This is the text! ---B

या

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A --- | This is the text| B

तीर और टेक्स्ट वाला लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-->|text|B

या

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-- text -->B

बिंदुदार लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-.->B;

टेक्स्ट वाला बिंदुदार लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A-. text .->B;

मोटा लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A ==> B

टेक्स्ट वाला मोटा लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A == |text| ==> B

अदृश्य लिंक

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A ~~~ B

लिंक का श्रृंखलाबद्ध कनेक्शन

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A -- text --> B -- text2 --> C

एक ही पंक्ति में कई नोड लिंक भी घोषित किए जा सकते हैं, जैसा कि नीचे दिखाया गया है:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR a --> b & c--> d

आप नीचे दिए गए कोड की तरह निर्भरता भी बता सकते हैं:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR a --> b & c--> d & e--> f

यदि उसी ग्राफ़ को बुनियादी सिंटैक्स से वर्णित किया जाए, तो 8 पंक्तियों की आवश्यकता होगी। ध्यान रखें कि इस विधि का अत्यधिक उपयोग Markdown फ़ॉर्मेट के फ़्लोचार्ट को पढ़ना कठिन बना सकता है।

कोड
                            
कॉपी करें
एम्बेड
flowchart TB a --> b a --> c b --> d b --> e c --> d c --> e d --> f e --> f

कनेक्टिंग लाइन में ID जोड़ें

Mermaid अब कनेक्टिंग लाइनों में ID जोड़ने का समर्थन करता है, जो नोड्स पर ID और मेटाडेटा संलग्न करने के समान है। यह सुविधा कनेक्टिंग लाइनों पर अधिक उन्नत शैली, क्लास और एनिमेशन क्षमताओं की नींव रखती है।

सिंटैक्स:

कनेक्टिंग लाइन में ID जोड़ने के लिए, कनेक्टिंग लाइन सिंटैक्स से पहले ID लिखें और उसके तुरंत बाद @ अक्षर लगाएँ। उदाहरण:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A e1@--> B

इस उदाहरण में, e1 उस कनेक्टिंग लाइन की ID है जो A और B को जोड़ती है। आप इस ID का उपयोग आगे की परिभाषा या शैली कथनों में नोड की तरह कर सकते हैं।

एनिमेशन चालू करें

कनेक्टिंग लाइन में ID जोड़ने के बाद, आप कनेक्टिंग लाइन के गुणों को परिभाषित करके उसका एनिमेशन चालू कर सकते हैं:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A e1@==> B e1@{ animate: true }

यह Mermaid को बताता है कि कनेक्टिंग लाइन e1 एनिमेटेड है।

एनिमेशन प्रकार चुनें

प्रारंभिक संस्करण में दो एनिमेशन गति समर्थित हैं: fast और slow। विशिष्ट एनिमेशन प्रकार चुनना एनिमेशन सक्षम करने और एक ही बार में एनिमेशन गति सेट करने का आसान तरीका है।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A e1@--> B e1@{ animation: fast }

这相当于 e1@{ animate: true, animation: fast }。

classDef कथन का उपयोग करके एनिमेशन

आप कनेक्टिंग लाइन को एक क्लास असाइन करके, फिर classDef कथन में एनिमेशन गुण परिभाषित करके भी कनेक्टिंग लाइन में एनिमेशन जोड़ सकते हैं। उदाहरण:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A e1@--> B classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite; class e1 animate

इस कोड में:

  • e1@--> 创建了一个 ID 为 e1 的连接线
  • classDef animate ने animate नाम की एक क्लास परिभाषित की, जिसमें शैली और एनिमेशन गुण हैं।
  • class e1 animate ने animate क्लास को कनेक्टिंग लाइन e1 पर लागू किया।

अल्पविराम को एस्केप करने के बारे में नोट: stroke-dasharray गुण सेट करते समय, याद रखें कि अल्पविराम को , के रूप में एस्केप करें, क्योंकि Mermaid की शैली परिभाषाओं में अल्पविराम विभाजक के रूप में उपयोग होता है।

नए तीर प्रकार

नए तीर प्रकारों का समर्थन करता है

  • ठोस वृत्त वाली कनेक्टिंग लाइन
  • क्रॉस चिह्न वाली कनेक्टिंग लाइन

ठोस वृत्त वाली कनेक्टिंग लाइन

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A --o B

क्रॉस चिह्न वाली कनेक्टिंग लाइन

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A --x B

बहुदिशीय तीर

बहुदिशीय तीरों का उपयोग किया जा सकता है, उदाहरण:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A o--o B B <--> C C x--x D

कनेक्टिंग लाइन की लंबाई

फ़्लोचार्ट में प्रत्येक नोड को, उससे जुड़े नोड्स के आधार पर, रेंडर किए गए ग्राफ़ में एक स्तर सौंपा जाता है, अर्थात ऊर्ध्वाधर या क्षैतिज स्तर (फ़्लोचार्ट की दिशा पर निर्भर)। डिफ़ॉल्ट रूप से, लिंक किसी भी संख्या में स्तरों तक फैल सकता है, लेकिन आप कनेक्शन परिभाषा में अतिरिक्त डैश जोड़कर किसी कनेक्शन को अन्य कनेक्शनों से लंबा बना सकते हैं।

इस उदाहरण में, नोड B से नोड E तक के कनेक्शन में दो अतिरिक्त डैश जोड़े गए हैं, जिससे यह सामान्य लिंक की तुलना में दो अधिक स्तरों तक फैलता है:

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B ---->|No| E[End]
नोट: अन्य अनुरोधों को समायोजित करने के लिए कनेक्शन रेंडरिंग इंजन द्वारा अनुरोधित स्तरों की संख्या से अधिक लंबा हो सकता है।

जब कनेक्शन लेबल कनेक्शन के बीच में लिखा जाता है, तो कनेक्शन के दाईं ओर अतिरिक्त डैश जोड़ना आवश्यक है। यह उदाहरण पिछले उदाहरण के समान है:

कोड
                            
कॉपी करें
एम्बेड
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B -- No ----> E[End]

बिंदुदार लाइनों या मोटे लिंक के लिए जोड़े जाने वाले अक्षर बराबर चिह्न या बिंदु हैं, जैसा कि नीचे दी गई तालिका में दिखाया गया है:

लंबाई 1 2 3
सामान्य कनेक्शन --- ---- -----
तीर सहित सामान्य कनेक्शन --> ---> ---->
मोटा कनेक्शन === ==== =====
तीर सहित मोटा कनेक्शन ==> ===> ====>
बिंदुदार लाइन -.- -..- -...-
तीर सहित बिंदुदार लाइन -.- -..-> -...->

विशेष अक्षर

अधिक कठिन अक्षरों को रेंडर करने के लिए टेक्स्ट को उद्धरण चिह्नों में रखा जा सकता है। जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1["This is the (text) in the box"]

अक्षरों को एस्केप करने के लिए एंटिटी एन्कोडिंग

उदाहरण के सिंटैक्स का उपयोग करके अक्षरों को एस्केप किया जा सकता है।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A["A double quote:#quot;"] --> B["A dec char:#9829;"]

दिया गया नंबर दशमलव है, इसलिए # को #35 के रूप में एन्कोड किया जा सकता है। HTML अक्षर नामों का उपयोग भी समर्थित है।

सबग्राफ़

                            
कॉपी करें
एम्बेड
subgraph title graph definition end

नीचे एक उदाहरण है:

कोड
                            
कॉपी करें
एम्बेड
flowchart TB c1-->a2 subgraph one a1-->a2 end subgraph two b1-->b2 end subgraph three c1-->c2 end

आप सबग्राफ़ के लिए id भी सेट कर सकते हैं।

कोड
                            
कॉपी करें
एम्बेड
flowchart TB c1-->a2 subgraph ide1 [one] a1-->a2 end

फ़्लोचार्ट

फ़्लोचार्ट प्रकार के चार्ट का उपयोग करते हुए, आप नीचे दिए गए फ़्लोचार्ट की तरह सबग्राफ़ की ओर और सबग्राफ़ से आने वाली कनेक्टिंग लाइनें भी सेट कर सकते हैं।

कोड
                            
कॉपी करें
एम्बेड
flowchart TB c1-->a2 subgraph one a1-->a2 end subgraph two b1-->b2 end subgraph three c1-->c2 end one --> two three --> two two --> c2

सबग्राफ़ की दिशा

फ़्लोचार्ट प्रकार का उपयोग करते समय, आप सबग्राफ़ की रेंडरिंग दिशा सेट करने के लिए दिशा कथन का उपयोग कर सकते हैं, जैसा कि नीचे दिखाया गया है:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR subgraph TOP direction TB subgraph B1 direction RL i1 -->f1 end subgraph B2 direction BT i2 -->f2 end end A --> TOP --> B B1 --> B2

सीमाएँ

यदि सबग्राफ़ का कोई भी नोड बाहर से जुड़ा है, तो सबग्राफ़ की दिशा को अनदेखा कर दिया जाएगा। अन्यथा, सबग्राफ़ पैरेंट ग्राफ़ की दिशा विरासत में लेगा:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR subgraph subgraph1 direction TB top1[top] --> bottom1[bottom] end subgraph subgraph2 direction TB top2[top] --> bottom2[bottom] end %% ^ These subgraphs are identical, except for the links to them: %% Link *to* subgraph1: subgraph1 direction is maintained outside --> subgraph1 %% Link *within* subgraph2: %% subgraph2 inherits the direction of the top-level graph (LR) outside ---> top2

Markdown स्ट्रिंग

Markdown स्ट्रिंग अधिक लचीला स्ट्रिंग प्रकार प्रदान करके फ़्लोचार्ट और माइंड मैप को बेहतर बनाती है, जो बोल्ड और इटैलिक जैसे टेक्स्ट फ़ॉर्मेटिंग विकल्पों का समर्थन करती है और लेबल के भीतर टेक्स्ट को स्वतः रैप कर सकती है।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR subgraph "One" a("`The **cat** in the hat`") -- "edge label" --> b{{"`The **dog** in the hog`"}} end subgraph "`**Two**`" c("`The **cat** in the hat`") -- "`Bold **edge label**`" --> d("The dog in the hog") end
  • टेक्स्ट को बोल्ड करने के लिए, टेक्स्ट के आगे और पीछे दो स्टार चिह्न (**) लगाएँ।
  • इटैलिक के लिए टेक्स्ट के आगे और पीछे एक स्टार चिह्न (*) लगाएँ।
  • पारंपरिक स्ट्रिंग के लिए, नोड में टेक्स्ट को रैप करने के लिए आपको <br> टैग जोड़ना होगा। हालाँकि, Markdown स्ट्रिंग टेक्स्ट बहुत लंबा होने पर स्वतः रैप हो जाती है, और <br> टैग के बजाय केवल न्यूलाइन अक्षर का उपयोग करके नई पंक्ति शुरू की जा सकती है।

यह सुविधा नोड लेबल, कनेक्टिंग लाइन लेबल और सबग्राफ़ लेबल पर लागू होती है

विशिष्ट सिंटैक्स का उपयोग करके स्वतः रैपिंग को अक्षम किया जा सकता है

कोड
                            
कॉपी करें
एम्बेड
--- config: markdownAutoWrap: false --- graph LR

टिप्पणी

फ़्लोचार्ट में टिप्पणियाँ दर्ज की जा सकती हैं, जिन्हें एडिटर अनदेखा कर देगा। टिप्पणी को अलग पंक्ति में होना चाहिए और दोहरे प्रतिशत चिह्न (%%) से शुरू होना चाहिए। टिप्पणी की शुरुआत से अगली पंक्ति तक का कोई भी टेक्स्ट, किसी भी फ़्लो सिंटैक्स सहित, टिप्पणी माना जाएगा।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR %% this is a comment A -- text --> B{node} A -- text --> B -- text2 --> C

शैली और क्लास

लिंक शैली

लिंक की शैली सेट की जा सकती है। उदाहरण के लिए, आप प्रवाह में पीछे जाने वाले लिंक को स्टाइल करना चाह सकते हैं; चूँकि लिंक में नोड्स की तरह ID नहीं होती, इसलिए यह तय करने का अन्य तरीका आवश्यक है कि लिंक को कौन सी शैली का उपयोग करना चाहिए। लिंक परिभाषित करते समय क्रम संख्या का उपयोग करें, या सभी लिंक पर लागू करने के लिए डिफ़ॉल्ट मान का उपयोग करें।

                            
कॉपी करें
एम्बेड
linkStyle 3 stroke:#ff3,stroke-width:4px,color:red;

आप एक ही कथन में लिंक नंबरों को अल्पविराम से अलग करके कई लिंक में शैली भी जोड़ सकते हैं:

                            
कॉपी करें
एम्बेड
linkStyle 1,2,7 color:blue;

कनेक्टिंग लाइन की वक्र शैली सेट करें

यदि डिफ़ॉल्ट विधि आपकी आवश्यकताओं को पूरा नहीं करती, तो आप आइटम्स के बीच कनेक्टिंग लाइनों के लिए वक्र शैली सेट कर सकते हैं। उपलब्ध वक्र शैलियों में basis, bumpX, bumpY, cardinal, catmullRom, linear, monotoneX, monotoneY, natural, step, stepAfter और stepBefore शामिल हैं।

नीचे दिए गए उदाहरण में, बाएँ से दाएँ वाले चार्ट ने stepBefore वक्र शैली का उपयोग किया है।

                            
कॉपी करें
एम्बेड
%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% graph LR

नोड शैली सेट करें

नोड पर विशिष्ट शैली सेट की जा सकती है, जैसे मोटा बॉर्डर या भिन्न बैकग्राउंड रंग।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR id1(Start)-->id2(Stop) style id1 fill:#f99,stroke:#33d,stroke-width:4px style id2 fill:#bfc,stroke:#f96,stroke-width:2px,color:#000,stroke-dasharray: 5 5

क्लास

हर बार शैली परिभाषित करने से अधिक सुविधाजनक यह है कि एक शैली क्लास परिभाषित करें और उस क्लास को उन नोड्स पर संलग्न करें जिन्हें अलग रूप चाहिए।

क्लास परिभाषा इस प्रकार है:

                            
कॉपी करें
एम्बेड
classDef className fill:pink,stroke:#333,stroke-width:4px;

इसके अलावा, एक ही कथन में कई क्लासों के लिए शैली परिभाषित की जा सकती है:

                            
कॉपी करें
एम्बेड
classDef firstClassName,secondClassName font-size:12pt;

क्लास को नोड पर संलग्न करने का तरीका इस प्रकार है:

                            
कॉपी करें
एम्बेड
class nodeId1 className;

आप एक ही कथन में एक क्लास को नोड सूची पर भी संलग्न कर सकते हैं:

                            
कॉपी करें
एम्बेड
class nodeId1,nodeId2 className;

क्लास जोड़ने के लिए ::: ऑपरेटर का उपयोग करके क्लास नाम को नोड पर संलग्न किया जा सकता है, जैसा कि नीचे दिखाया गया है:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A:::someclass --> B classDef someclass fill:#f96

नोड्स के बीच कई लिंक घोषित करते समय इस रूप का उपयोग किया जा सकता है:

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A:::foo & B:::bar --> C:::foobar classDef foo stroke:#f00 classDef bar stroke:#0f0 classDef foobar stroke:#00f

  • ग्राफ़ घोषणाओं में, कथन अब सेमीकोलन के बिना भी समाप्त किए जा सकते हैं। संस्करण 0.2.16 के बाद, ग्राफ़ कथन को सेमीकोलन से समाप्त करना केवल वैकल्पिक है। इसलिए, नीचे दी गई ग्राफ़ घोषणा पुरानी ग्राफ़ घोषणा की तरह ही मान्य है।
  • वर्टिसेस और लिंक के बीच एक स्पेस की अनुमति है। हालाँकि, वर्टिस और उसके टेक्स्ट तथा लिंक और उसके टेक्स्ट के बीच कोई स्पेस नहीं होना चाहिए। पुरानी ग्राफ़ घोषणा भी अभी भी मान्य है, इसलिए यह नई सुविधा वैकल्पिक है और इसका उद्देश्य पठनीयता बढ़ाना है।

नीचे कनेक्टिंग लाइन की नई घोषणा है, जो पुरानी कनेक्टिंग लाइन घोषणा की तरह ही मान्य है।

कोड
                            
कॉपी करें
एम्बेड
flowchart LR A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two]