Register
Process Type
Graphical expression
Mind Type
Structured expression
Note Type
Efficient expression

FlödesschemaSyntax

Grundläggande definition

Ett flödesschema består av noder (geometriska former) och förbindelselinjer (pilar eller linjer). Mermaid-koden definierar hur noder och förbindelselinjer byggs upp och stöder flera piltyper, flerriktade pilar samt godtyckliga länkar till subgrafer.

Varning Om du använder ordet "end" i en nod i ett flödesschema, skriv första bokstaven eller hela ordet med versaler (till exempel: "End" eller "END"), om du skriver in "end" helt med gemener uppstår ett fel i flödesschemat.

Varning Om du använder bokstaven "o" eller "x" som första bokstav när du förbinder noder i ett flödesschema, lägg till ett mellanslag före bokstaven eller skriv bokstaven med versal (till exempel: "dev--- ops", "dev---Ops").

En nod (standard)

Kod
                            
Kopiera
Bädda in
--- title: Node --- flowchart LR id
Information

id är det som visas i rutan.

Tips

Syntax för att skapa flödesscheman: förutom att använda flowchart kan du även använda graph .

En nod med text

Du kan också ange en annan text än id för rutan. Om detta görs flera gånger används den text som sist angavs för noden. Dessutom kan textdefinitionen utelämnas om en förbindelselinje senare definieras för noden; vid rendering av rutan används den tidigare definierade texten.

Kod
                            
Kopiera
Bädda in
--- title: Node with text --- flowchart LR id1[This is the text in the box]

Unicode-text

Omge Unicode-text med dubbla citattecken.

Kod
                            
Kopiera
Bädda in
flowchart LR id["This ❤ Unicode"]

Markdown-format

Omge Markdown-text med dubbla citattecken och backticks

Kod
                            
Kopiera
Bädda in
flowchart LR markdown["`This **is** _Markdown_`"] newLines["`Line1 Line 2 Line 3`"] markdown --> newLines

Riktning

Anger flödesschemats riktning

Anger att flödesschemat är ordnat uppifrån och ned (TD eller TB)

Kod
                            
Kopiera
Bädda in
flowchart TD Start --> Stop

Riktningar för flödesschema omfattar:

  • TB - uppifrån och ned
  • TD - uppifrån och ned (samma som uppifrån och ned)
  • BT - nedifrån och upp
  • RL - höger till vänster
  • LR - vänster till höger

Nodform

Rektangel med rundade hörn

Kod
                            
Kopiera
Bädda in
flowchart LR id1(This is the text in the box)

Stadionform

Kod
                            
Kopiera
Bädda in
flowchart LR id1([This is the text in the box])

Subgraf

Kod
                            
Kopiera
Bädda in
flowchart LR id1[[This is the text in the box]]

Databas

Kod
                            
Kopiera
Bädda in
flowchart LR id1[(Database)]

Cirkel

Kod
                            
Kopiera
Bädda in
flowchart LR id1((This is the text in the circle))

Asymmetrisk form

Kod
                            
Kopiera
Bädda in
flowchart LR id1>This is the text in the box]

Romb

Kod
                            
Kopiera
Bädda in
flowchart LR id1{This is the text in the box}

Hexagon

Kod
                            
Kopiera
Bädda in
flowchart LR id1{{This is the text in the box}}

Parallellogram

Kod
                            
Kopiera
Bädda in
flowchart TD id1[/This is the text in the box/]

Omvänd parallellogram

Kod
                            
Kopiera
Bädda in
flowchart TD id1[\This is the text in the box\]

Trapets

Kod
                            
Kopiera
Bädda in
flowchart TD A[/ProcessOn\]

Omvänt trapets

Kod
                            
Kopiera
Bädda in
flowchart TD B[\ProcessOn/]

Dubbelcirkel

Kod
                            
Kopiera
Bädda in
flowchart TD id1(((This is the text in the circle)))

Utökning av nodformer i Mermaid-flödesschema

Mermaid introducerar 30 nya former för att öka flexibiliteten och precisionen vid skapande av flödesscheman. Dessa nya former erbjuder fler alternativ för att visuellt representera processer, beslut, händelser, datalagring och andra element i flödesscheman, vilket förbättrar tydlighet och semantisk innebörd.

Ny syntax för formdefinition

Mermaid stöder nu en generell syntax för att definiera formtyper, för att hantera det växande antalet former. Denna syntax låter dig ange en specifik form för en nod med ett tydligt och flexibelt format.

                            
Kopiera
Bädda in
A@{ shape: rect }

Denna syntax skapar noden A som en rektangel. Den renderas på samma sätt som [A] eller A.

Fullständig lista över nodformer

Följande är en fullständig lista över de nyligen introducerade nodformerna med tillhörande innebörd, förkortningar och alias:

Semantiskt namn Grafikens syntax Syntaxförkortning Syntaxalternativ Detaljerad beskrivning
Kort Notched Rectangle notch-rect card, notched-rectangle Representerar ett kort
Sortering Hourglass hourglass collate Representerar en sorteringsåtgärd
Kommunikationslänk Lightning Bolt bolt com-link, lightning-bolt Kommunikationslänk
Kommentar Curly Brace brace brace-l, comment Lägg till en kommentar
Kommentar till höger Curly Brace brace-r Lägg till en kommentar
Kommentar med klammerparenteser på båda sidor Curly Braces braces Lägg till en kommentar
Datainmatning eller datautmatning Lean Right lean-r in-out, lean-right Representerar indata eller utdata
Datainmatning eller datautmatning Lean Left lean-l lean-left, out-in Representerar utdata eller indata
Databas Cylinder cyl cylinder, database, db Databaslagring
Beslut Diamond diam decision, diamond, question Beslutssteg
Fördröjning Half-Rounded Rectangle delay half-rounded-rectangle Representerar en fördröjning
Direktåtkomstlagring Horizontal Cylinder h-cyl das, horizontal-cylinder Direktåtkomstlagring
Disklagring Lined Cylinder lin-cyl disk, lined-cylinder Disklagring
Visning Curved Trapezoid curv-trap curved-trapezoid, display Representerar att information visas på en skärm, terminal eller liknande enhet
Delad bearbetning Divided Rectangle div-rect div-proc, divided-process, divided-rectangle Form för delad bearbetning
Dokument Document doc document Representerar ett dokument
Händelse Rounded Rectangle rounded event Representerar en händelse
Extrahering Triangle tri extract, triangle Extraheringsprocess
Förgrening/sammanslagning Filled Rectangle fork join Förgrening eller sammanslagning i ett flödesschema
Intern lagring Window Pane win-pane internal-storage, window-pane Intern lagring
Anslutningspunkt Filled Circle f-circ filled-circle, junction Anslutningspunkt
Dokument med linje Lined Document lin-doc lined-document Dokument med linje
Linje-/skuggprocess Lined Rectangle lin-rect lin-proc, lined-process, lined-rectangle, shaded-process Processform med linje
Loopbegränsning Trapezoidal Pentagon notch-pent loop-limit, notched-pentagon Steg för loopbegränsning
Manuell fil Flipped Triangle flip-tri flipped-triangle, manual-file Manuell filåtgärd
Manuell inmatning Sloped Rectangle sl-rect manual-input, sloped-rectangle Steg för manuell inmatning
Manuell åtgärd Trapezoid Base Top trap-t inv-trapezoid, manual, trapezoid-top Representerar en manuell uppgift
Flera dokument Stacked Document docs documents, st-doc, stacked-document 多个文档
Flera processer Stacked Rectangle st-rect processes, procs, stacked-rectangle 多个进程
Oregelbunden form Odd odd Oregelbunden form
Pappersremsa Flag flag paper-tape Pappersremsa
Förberedelse Hexagon hex hexagon, prepare Förberedelse- eller villkorssteg
Prioriterad åtgärd Trapezoid Base Bottom trap-b priority, trapezoid, trapezoid-bottom Prioriterad åtgärd
Process Rectangle rect proc, process, rectangle Standardform för process
Start Circle circle circ Startpunkt
Start Small Circle sm-circ small-circle, start Liten cirkel som startpunkt
Stopp Double Circle dbl-circ double-circle Representerar en stoppunkt
Stopp Framed Circle fr-circ framed-circle, stop Representerar en stoppunkt
Lagring av data Bow Tie Rectangle bow-rect bow-tie-rectangle, stored-data Lagring av data
Subgraf Framed Rectangle fr-rect framed-rectangle, subproc, subprocess, subroutine Delprocess, underprogram
Sammanfattning Crossed Circle cross-circ crossed-circle, summary Sammanfattning
Taggat dokument Tagged Document tag-doc tagged-document Taggat dokument
Standardiserad process Tagged Rectangle tag-rect tag-proc, tagged-process, tagged-rectangle 已标准进程
Slutpunkt Stadium stadium pill, terminal Slutpunkt
Textblock Text Block text Textblock

Följande är ett kodexempel på ett flödesschema som använder de nyligen introducerade formerna:

Kod
                            
Kopiera
Bädda in
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"}

Process

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: rect, label: "This is a process" }

Händelse

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: rounded, label: "This is an event" }

Delprocess

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: subproc, label: "This is a subprocess" }

Databas (cylinder)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: cyl, label: "Database" }

Start (cirkel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: circle, label: "Start" }

Oregelbunden form

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: odd, label: "Odd shape" }

Beslut (romb)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: diamond, label: "Decision" }

Förberedelse (hexagon)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: hex, label: "Prepare conditional" }

Datainmatning/utmatning (lutad åt höger)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: lean-r, label: "Input/Output" }

Datainmatning/utmatning (lutad åt vänster)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: lean-l, label: "Input/Output" }

Prioriterad åtgärd (trapets)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: trap-b, label: "Priority action" }

Manuell åtgärd (omvänt trapets)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: trap-t, label: "Manual operation" }

Stopp (dubbelcirkel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: dbl-circ, label: "Stop" }

Textblock

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: text, label: "This is a text block" }

Kort (rektangel med hack)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: notch-rect, label: "Card" }

Process med linje/skugga

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: lin-rect, label: "Lined process" }

Start (liten cirkel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: sm-circ, label: "Small start" }

Stopp (cirkel med ram)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: framed-circle, label: "Stop" }

Förgrening/sammanslagning (lång rektangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: fork, label: "Fork or Join" }

Sortering (timglas)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: hourglass, label: "Collate" }

Kommentar (klammerparenteser)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: comment, label: "Comment" }

Kommentar till höger (höger klammerparentes)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: brace-r, label: "Comment" }

Kommentar (parenteser på båda sidor)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: braces, label: "Comment" }

Kommunikationslänk (blixt)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: bolt, label: "Communication link" }

Dokument

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: doc, label: "Document" }

Fördröjning (halvt rundad rektangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: delay, label: "Delay" }

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

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: das, label: "Direct access to storage" }

Disklagring (cylinder med spår)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: lin-cyl, label: "Disk storage" }

Visning (visningsform)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: curv-trap, label: "Display" }

Delad bearbetning (delad rektangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: div-rect, label: "Divided process" }

Extrahering (liten triangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: tri, label: "Extract" }

Intern lagring (fönsterpanel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: win-pane, label: "Internal storage" }

Anslutningspunkt (fylld cirkel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: f-circ, label: "Connect" }

Dokument med linje

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: lin-doc, label: "Lined document" }

Loopbegränsning (femhörning med hack)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: notch-pent, label: "Loop limit" }

Manuell fil (vänd triangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: flip-tri, label: "Manual file" }

Manuell inmatning (rätvinkligt trapets)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: sl-rect, label: "Manual input" }

Flera dokument (staplade dokument)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: docs, label: "Multi-document" }

Flera processer (staplade rektanglar)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: processes, label: "Multiple processes" }

Pappersremsa (flagga)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: flag, label: "Paper tape" }

Lagring av data (rosett-rektangel)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: bow-rect, label: "Data stored" }

Sammanfattning (cirkel med kors)

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: cross-circ, label: "Summary" }

Taggat dokument

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: tag-doc, label: "Tagged document" }

Markerad process

Kod
                            
Kopiera
Bädda in
flowchart TD A@{ shape: tag-rect, label: "Tagged process" }

Särskilda former i Mermaid-flödesscheman

Mermaid introducerar även bilder för att förbättra ditt flödesschema, så att du kan inkludera bilder direkt i flödesschemat, vilket ger mer visuell kontext och tydlighet.

Bildform

Du kan använda image för att infoga en bild i flödesschemat. Syntaxen för att definiera en bild är följande:

                            
Kopiera
Bädda in
flowchart TD A@{ img: "https://www.processon.com/image.png", label: "Image Label", pos: "t", w: 60, h: 60, constraint: "off" }

Parameter

  • img: URL-adressen till bilden som ska visas.
  • label: en textetikett som är kopplad till bilden, kan vara vilken sträng som helst. Om den inte definieras visas ingen etikett.
  • pos: etikettens position. Om den inte definieras placeras etiketten som standard längst ned på bilden.
  • w: bildens bredd. Om den inte definieras används bildens naturliga bredd som standard.
  • h: bildens höjd. Om den inte definieras används bildens naturliga höjd som standard.
  • constraint: avgör om bilden begränsar nodens storlek. Denna inställning säkerställer också att bilden behåller sitt ursprungliga bildförhållande och justerar höjden efter bredden. Om den inte definieras är standardvärdet off .

Bilder ger ditt flödesschema extra flexibilitet och visuell attraktionskraft, vilket gör det mer informativt och tilltalande.

Förbindelser mellan noder

Noder kan förbindas med förbindelselinjer och pilar. Det finns olika typer av länkar, och textsträngar kan också bifogas till länkarna.

Länk med pil

Kod
                            
Kopiera
Bädda in
flowchart LR A-->B

En öppen länk

Kod
                            
Kopiera
Bädda in
flowchart LR A --- B

Länk med text

Kod
                            
Kopiera
Bädda in
flowchart LR A-- This is the text! ---B

eller

Kod
                            
Kopiera
Bädda in
flowchart LR A --- | This is the text| B

Länk med pil och text

Kod
                            
Kopiera
Bädda in
flowchart LR A-->|text|B

eller

Kod
                            
Kopiera
Bädda in
flowchart LR A-- text -->B

Streckad länk

Kod
                            
Kopiera
Bädda in
flowchart LR A-.->B;

Streckad länk med text

Kod
                            
Kopiera
Bädda in
flowchart LR A-. text .->B;

Tjock länk

Kod
                            
Kopiera
Bädda in
flowchart LR A ==> B

Tjock länk med text

Kod
                            
Kopiera
Bädda in
flowchart LR A == |text| ==> B

Osynlig länk

Kod
                            
Kopiera
Bädda in
flowchart LR A ~~~ B

Kedjade länkar

Kod
                            
Kopiera
Bädda in
flowchart LR A -- text --> B -- text2 --> C

Du kan också deklarera flera nodlänkar på samma rad, som visas nedan:

Kod
                            
Kopiera
Bädda in
flowchart LR a --> b & c--> d

Du kan också beskriva beroenden, som i följande kod:

Kod
                            
Kopiera
Bädda in
flowchart LR a --> b & c--> d & e--> f

Om samma graf beskrivs med den grundläggande syntaxen krävs 8 rader. Kom ihåg att överdriven användning av denna metod kan göra flödesscheman i Markdown-format svårare att läsa.

Kod
                            
Kopiera
Bädda in
flowchart TB a --> b a --> c b --> d b --> e c --> d c --> e d --> f e --> f

Lägg till ett ID för en förbindelselinje

Mermaid stöder nu att lägga till ett ID för en förbindelselinje, liknande att bifoga ID och metadata till noder. Denna funktion lägger grunden för mer avancerad stil, klasser och animering på förbindelselinjer.

Syntax:

För att lägga till ett ID för en förbindelselinje, skriv ID:t före förbindelselinjens syntax, följt direkt av tecknet @. Till exempel:

Kod
                            
Kopiera
Bädda in
flowchart LR A e1@--> B

I detta exempel är e1 ID:t för förbindelselinjen som förbinder A och B. Du kan använda detta ID i efterföljande definitioner eller stiluttryck, precis som för en nod.

Aktivera animering

Efter att ha lagt till ett ID för förbindelselinjen kan du aktivera animering av förbindelselinjen genom att definiera dess egenskaper:

Kod
                            
Kopiera
Bädda in
flowchart LR A e1@==> B e1@{ animate: true }

Detta talar om för Mermaid att förbindelselinjen e1 är animerad.

Välj animationstyp

I den första versionen stöds två animationshastigheter: fast och slow. Att välja en specifik animationstyp är ett enkelt sätt att aktivera animering och ange animationshastigheten på en gång.

Kod
                            
Kopiera
Bädda in
flowchart LR A e1@--> B e1@{ animation: fast }

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

Animering med classDef -satsen

Du kan också animera en förbindelselinje genom att tilldela den en klass och sedan definiera animationsegenskaper i en classDef -sats. Till exempel:

Kod
                            
Kopiera
Bädda in
flowchart LR A e1@--> B classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite; class e1 animate

I denna kod:

  • e1@--> 创建了一个 ID 为 e1 的连接线
  • classDef animate definierar en klass som heter animate, med stil- och animationsegenskaper.
  • class e1 animate tillämpar klassen animate på förbindelselinjen e1.

Om att undvika kommatecken: när du ställer in egenskapen stroke-dasharray, kom ihåg att undvika kommatecken som ,, eftersom kommatecken används som avgränsare i Mermaids stildefinitioner.

Ny piltyp

Stöd för nya piltyper

  • Förbindelselinje med fylld cirkel
  • Förbindelselinje med kryssmarkering

Förbindelselinje med fylld cirkel

Kod
                            
Kopiera
Bädda in
flowchart LR A --o B

Förbindelselinje med kryssmarkering

Kod
                            
Kopiera
Bädda in
flowchart LR A --x B

Flerriktade pilar

Du kan använda flerriktade pilar, till exempel:

Kod
                            
Kopiera
Bädda in
flowchart LR A o--o B B <--> C C x--x D

Förbindelselinjens längd

Varje nod i ett flödesschema tilldelas en nivå i renderingsgrafen beroende på vilka noder den är förbunden med, det vill säga en vertikal eller horisontell nivå (beroende på flödesschemats riktning). Som standard kan en länk spänna över valfritt antal nivåer, men du kan begära att en viss förbindelse ska vara längre än andra genom att lägga till extra bindestreck i förbindelsedefinitionen.

I detta exempel har två extra bindestreck lagts till i förbindelsen från nod B till nod E, vilket gör att den spänner över två nivåer mer än en vanlig länk:

Kod
                            
Kopiera
Bädda in
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B ---->|No| E[End]
Obs: en förbindelse kan vara längre än det antal nivåer som renderingsmotorn begär, för att tillgodose andra önskemål.

När en förbindelseetikett skrivs i mitten av förbindelsen måste extra bindestreck läggas till på förbindelsens högra sida. Detta exempel är likvärdigt med det föregående:

Kod
                            
Kopiera
Bädda in
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B -- No ----> E[End]

För punktlinjer eller tjocka länkar är tecknet som ska läggas till ett likhetstecken eller punkt, som visas i tabellen nedan:

Längd 1 2 3
Vanlig förbindelse --- ---- -----
Vanlig förbindelse med pil --> ---> ---->
Tjock förbindelse === ==== =====
Tjock förbindelse med pil ==> ===> ====>
Punktlinje -.- -..- -...-
Punktlinje med pil -.- -..-> -...->

Specialtecken

Du kan placera text inom citattecken för att rendera besvärligare tecken. Som i följande exempel:

Kod
                            
Kopiera
Bädda in
flowchart LR id1["This is the (text) in the box"]

Entitetskodning för att undvika tecken

Du kan undvika tecken med syntaxen i exemplet.

Kod
                            
Kopiera
Bädda in
flowchart LR A["A double quote:#quot;"] --> B["A dec char:#9829;"]

De angivna talen är decimala, så # kan kodas som #35. Användning av HTML-teckennamn stöds också.

Subgraf

                            
Kopiera
Bädda in
subgraph title graph definition end

Här är ett exempel:

Kod
                            
Kopiera
Bädda in
flowchart TB c1-->a2 subgraph one a1-->a2 end subgraph two b1-->b2 end subgraph three c1-->c2 end

Du kan också ange ett id för en subgraf.

Kod
                            
Kopiera
Bädda in
flowchart TB c1-->a2 subgraph ide1 [one] a1-->a2 end

Flödesschema

Med diagram av typen flödesschema kan du också ange förbindelselinjer till och från subgrafer, som i följande flödesschema.

Kod
                            
Kopiera
Bädda in
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

Subgrafens riktning

När du använder diagramtypen flödesschema kan du använda en riktningssats för att ange subgrafens renderingsriktning, som visas nedan:

Kod
                            
Kopiera
Bädda in
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

Begränsningar

Om någon nod i subgrafen är förbunden med omvärlden ignoreras subgrafens riktning. Annars ärver subgrafen den överordnade grafens riktning:

Kod
                            
Kopiera
Bädda in
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-sträng

Markdown-strängar förbättrar flödesscheman och tankekartor genom att erbjuda en mer flexibel strängtyp, med stöd för textformateringsalternativ som fetstil och kursiv, samt möjlighet att automatiskt radbryta text inom etiketter.

Kod
                            
Kopiera
Bädda in
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
  • För att göra text fetstil, använd två asterisker (**) före och efter texten.
  • Kursiv stil använder en enkel asterisk (*) före och efter texten.
  • För traditionella strängar måste du lägga till en <br> -tagg för att texten ska radbrytas i noden. Markdown-strängar radbryter dock automatiskt när texten är för lång, och du behöver bara använda en radbrytning istället för en <br> -tagg för att börja en ny rad.

Denna funktion gäller för nodetiketter, förbindelselinjeetiketter och subgrafetiketter

Automatisk radbrytning kan inaktiveras med en specifik syntax

Kod
                            
Kopiera
Bädda in
--- config: markdownAutoWrap: false --- graph LR

Kommentar

Du kan infoga kommentarer i ett flödesschema, och redigeraren ignorerar dessa kommentarer. En kommentar måste uppta en egen rad och börja med två procenttecken (%%). All text från kommentarens början till nästa rad betraktas som en kommentar, inklusive all flödessyntax.

Kod
                            
Kopiera
Bädda in
flowchart LR %% this is a comment A -- text --> B{node} A -- text --> B -- text2 --> C

Stil och klass

Länkstil

Du kan ange länkstil. Till exempel kanske du vill utforma en länk som rör sig bakåt i flödet. Eftersom länkar inte har ID:n som noder, måste stilen för länken bestämmas på annat sätt. Använd ordningsnumret när länken definieras, eller använd standardvärdet för att tillämpa på alla länkar.

                            
Kopiera
Bädda in
linkStyle 3 stroke:#ff3,stroke-width:4px,color:red;

Du kan också lägga till stil på flera länkar genom att separera länknumren med kommatecken i en och samma sats:

                            
Kopiera
Bädda in
linkStyle 1,2,7 color:blue;

Ange kurvstil för förbindelselinjer

Om standardmetoden inte uppfyller dina behov kan du ange kurvstil för förbindelselinjer mellan objekt. Tillgängliga kurvstilar inkluderar basis, bumpX, bumpY, cardinal, catmullRom, linear, monotoneX, monotoneY, natural, step, stepAfter och stepBefore.

I följande exempel använder ett diagram från vänster till höger kurvstilen stepBefore .

                            
Kopiera
Bädda in
%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% graph LR

Ange nodstil

Du kan ange en specifik stil för en nod, till exempel en tjockare ram eller en annan bakgrundsfärg.

Kod
                            
Kopiera
Bädda in
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

Klass

Istället för att definiera stilen varje gång är det bekvämare att definiera en stilklass och koppla denna klass till de noder som behöver ett annat utseende.

En klassdefinition ser ut så här:

                            
Kopiera
Bädda in
classDef className fill:pink,stroke:#333,stroke-width:4px;

Dessutom kan du definiera stil för flera klasser i en och samma sats:

                            
Kopiera
Bädda in
classDef firstClassName,secondClassName font-size:12pt;

Så här kopplar du en klass till en nod:

                            
Kopiera
Bädda in
class nodeId1 className;

Du kan också koppla en klass till en lista av noder i en och samma sats:

                            
Kopiera
Bädda in
class nodeId1,nodeId2 className;

Du kan lägga till en klass med operatorn ::: som kopplar klassnamnet till noden, som visas nedan:

Kod
                            
Kopiera
Bädda in
flowchart LR A:::someclass --> B classDef someclass fill:#f96

Denna form kan användas när du deklarerar flera länkar mellan noder:

Kod
                            
Kopiera
Bädda in
flowchart LR A:::foo & B:::bar --> C:::foobar classDef foo stroke:#f00 classDef bar stroke:#0f0 classDef foobar stroke:#00f

  • I grafdeklarationer kan satser nu också avslutas utan semikolon. Efter version 0.2.16 är det bara valfritt att avsluta grafsatser med semikolon. Därför är följande grafdeklaration lika giltig som den gamla grafdeklarationen.
  • Ett mellanslag tillåts mellan nod och länk. Det bör dock inte finnas något mellanslag mellan en nod och dess text eller mellan en länk och dess text. Den gamla grafdeklarationen är fortfarande giltig, så denna nya funktion är valfri och syftar till att förbättra läsbarheten.

Följande är den nya deklarationen av förbindelselinjer, som är lika giltig som den gamla deklarationen av förbindelselinjer.

Kod
                            
Kopiera
Bädda in
flowchart LR A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two]