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

RutediagramSyntaks

Grundlæggende definition

Et flowdiagram består af knuder (geometriske former) og forbindelseslinjer (pile eller linjer). Mermaid-koden definerer, hvordan knuder og forbindelseslinjer opbygges, og understøtter flere piltyper, flerrettede pile samt vilkårlige link til subgrafer.

Advarsel Hvis du bruger ordet "end" i en flowdiagram-knude, skal du skrive det første bogstav eller hele ordet med stort (f.eks. "End" eller "END"); hvis du skriver "end" med små bogstaver, går flowdiagrammet i stykker.

Advarsel Hvis du bruger bogstavet "o" eller "x" som første bogstav, når du forbinder flowdiagram-knuder, skal du tilføje et mellemrum før bogstavet eller skrive det med stort (f.eks. "dev--- ops", "dev---Ops").

En knude (standard)

Kode
                            
Kopiér
Integrer
--- title: Node --- flowchart LR id
Information

id er det, der vises i boksen.

Tip

Til oprettelse af flowdiagrammer kan du ud over flowchart også bruge graph .

En knude med tekst

Du kan også give boksen en anden tekst end id. Hvis du gør dette flere gange, bruges den tekst, der sidst blev angivet for knuden. Hvis der senere defineres en forbindelseslinje for knuden, kan tekstdefinitionen desuden udelades; når boksen rendres, bruges den tidligere definerede tekst.

Kode
                            
Kopiér
Integrer
--- title: Node with text --- flowchart LR id1[This is the text in the box]

Unicode-tekst

Omslut Unicode-tekst med dobbelte anførselstegn.

Kode
                            
Kopiér
Integrer
flowchart LR id["This ❤ Unicode"]

Markdown-format

Omslut Markdown-tekst med dobbelte anførselstegn og backtick

Kode
                            
Kopiér
Integrer
flowchart LR markdown["`This **is** _Markdown_`"] newLines["`Line1 Line 2 Line 3`"] markdown --> newLines

Retning

Angiver flowdiagrammets retning

Angiver, at flowdiagrammet er arrangeret fra top til bund (TD eller TB)

Kode
                            
Kopiér
Integrer
flowchart TD Start --> Stop

Flowdiagrammets retninger omfatter:

  • TB - fra top til bund
  • TD - fra top til bund (samme som top til bund)
  • BT - fra bund til top
  • RL - fra højre til venstre
  • LR - fra venstre til højre

Knudeformer

Afrundet rektangel

Kode
                            
Kopiér
Integrer
flowchart LR id1(This is the text in the box)

Stadionform

Kode
                            
Kopiér
Integrer
flowchart LR id1([This is the text in the box])

Subgraf

Kode
                            
Kopiér
Integrer
flowchart LR id1[[This is the text in the box]]

Database

Kode
                            
Kopiér
Integrer
flowchart LR id1[(Database)]

Cirkel

Kode
                            
Kopiér
Integrer
flowchart LR id1((This is the text in the circle))

Asymmetrisk form

Kode
                            
Kopiér
Integrer
flowchart LR id1>This is the text in the box]

Rombe

Kode
                            
Kopiér
Integrer
flowchart LR id1{This is the text in the box}

Sekskant

Kode
                            
Kopiér
Integrer
flowchart LR id1{{This is the text in the box}}

Parallelogram

Kode
                            
Kopiér
Integrer
flowchart TD id1[/This is the text in the box/]

Omvendt parallelogram

Kode
                            
Kopiér
Integrer
flowchart TD id1[\This is the text in the box\]

Trapez

Kode
                            
Kopiér
Integrer
flowchart TD A[/ProcessOn\]

Omvendt trapez

Kode
                            
Kopiér
Integrer
flowchart TD B[\ProcessOn/]

Dobbeltcirkel

Kode
                            
Kopiér
Integrer
flowchart TD id1(((This is the text in the circle)))

Udvidelse af knudeformer i Mermaid-flowdiagrammer

Mermaid har introduceret 30 nye former for at øge fleksibiliteten og præcisionen i oprettelsen af flowdiagrammer. Disse nye former giver flere muligheder for intuitivt at repræsentere processer, beslutninger, hændelser, datalagring og andre elementer i et flowdiagram, hvilket forbedrer klarheden og den semantiske betydning.

Ny syntaks til formdefinition

Mermaid understøtter nu en generel syntaks til at definere formtyper for at håndtere det stigende antal former. Denne syntaks giver dig mulighed for at angive en bestemt form for en knude i et klart og fleksibelt format.

                            
Kopiér
Integrer
A@{ shape: rect }

Denne syntaks opretter knuden A som et rektangel. Den rendres på samme måde som [A] eller A.

Komplet liste over knudeformer

Følgende er en komplet liste over de nyligt introducerede knudeformer med deres tilsvarende betydning, forkortelse og alias:

Semantisk navn Grafisk syntaks Syntaksforkortelse Syntaksalternativ Detaljeret beskrivelse
Kort Notched Rectangle notch-rect card, notched-rectangle Repræsenterer et kort
Sortering Hourglass hourglass collate Repræsenterer en sorteringshandling
Kommunikationslink Lightning Bolt bolt com-link, lightning-bolt Kommunikationslink
Kommentar Curly Brace brace brace-l, comment Tilføjer en kommentar
Kommentar til højre Curly Brace brace-r Tilføjer en kommentar
Kommentar med klammer på begge sider Curly Braces braces Tilføjer en kommentar
Datainput eller -output Lean Right lean-r in-out, lean-right Repræsenterer input eller output
Datainput eller -output Lean Left lean-l lean-left, out-in Repræsenterer output eller input
Database Cylinder cyl cylinder, database, db Databaselagring
Beslutning Diamond diam decision, diamond, question Beslutningstrin
Forsinkelse Half-Rounded Rectangle delay half-rounded-rectangle Repræsenterer forsinkelse
Direkte adgangslager Horizontal Cylinder h-cyl das, horizontal-cylinder Direkte adgangslager
Disklagring Lined Cylinder lin-cyl disk, lined-cylinder Disklagring
Visning Curved Trapezoid curv-trap curved-trapezoid, display Repræsenterer, at information vises på en skærm, terminal eller lignende enhed
Opdelt behandling Divided Rectangle div-rect div-proc, divided-process, divided-rectangle Form for opdelt behandling
Dokument Document doc document Repræsenterer et dokument
Hændelse Rounded Rectangle rounded event Repræsenterer en hændelse
Uddrag Triangle tri extract, triangle Uddragsproces
Forgrening/fletning Filled Rectangle fork join Forgrening eller fletning i et flowdiagram
Internt lager Window Pane win-pane internal-storage, window-pane Internt lager
Forbindelsespunkt Filled Circle f-circ filled-circle, junction Forbindelsespunkt
Dokument med linje Lined Document lin-doc lined-document Dokument med linje
Linje-/skyggeproces Lined Rectangle lin-rect lin-proc, lined-process, lined-rectangle, shaded-process Procesform med linje
Løkkegrænse Trapezoidal Pentagon notch-pent loop-limit, notched-pentagon Trin for løkkegrænse
Manuel fil Flipped Triangle flip-tri flipped-triangle, manual-file Manuel filhandling
Manuel input Sloped Rectangle sl-rect manual-input, sloped-rectangle Manuelt inputtrin
Manuel handling Trapezoid Base Top trap-t inv-trapezoid, manual, trapezoid-top Repræsenterer en manuel opgave
Flere dokumenter Stacked Document docs documents, st-doc, stacked-document 多个文档
Flere processer Stacked Rectangle st-rect processes, procs, stacked-rectangle 多个进程
Uregelmæssig form Odd odd Uregelmæssig form
Papirbånd Flag flag paper-tape Papirbånd
Forberedelsesbetingelse Hexagon hex hexagon, prepare Forberedelses- eller betingelsestrin
Prioriteret handling Trapezoid Base Bottom trap-b priority, trapezoid, trapezoid-bottom Prioriteret handling
Proces Rectangle rect proc, process, rectangle Standardprocesform
Start Circle circle circ Startpunkt
Start Small Circle sm-circ small-circle, start Lille cirkelformet startpunkt
Stop Double Circle dbl-circ double-circle Repræsenterer et stoppunkt
Stop Framed Circle fr-circ framed-circle, stop Repræsenterer et stoppunkt
Lagring af data Bow Tie Rectangle bow-rect bow-tie-rectangle, stored-data Lagring af data
Subgraf Framed Rectangle fr-rect framed-rectangle, subproc, subprocess, subroutine Subproces, underprogram
Resumé Crossed Circle cross-circ crossed-circle, summary Resumé
Mærket dokument Tagged Document tag-doc tagged-document Mærket dokument
Standardiseret proces Tagged Rectangle tag-rect tag-proc, tagged-process, tagged-rectangle 已标准进程
Slutpunkt Stadium stadium pill, terminal Slutpunkt
Tekstblok Text Block text Tekstblok

Følgende er et eksempel på flowdiagramkode, der bruger de nyligt introducerede former:

Kode
                            
Kopiér
Integrer
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"}

Proces

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: rect, label: "This is a process" }

Hændelse

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: rounded, label: "This is an event" }

Subproces

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: subproc, label: "This is a subprocess" }

Database (cylinder)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: cyl, label: "Database" }

Start (cirkel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: circle, label: "Start" }

Uregelmæssig form

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: odd, label: "Odd shape" }

Beslutning (rombe)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: diamond, label: "Decision" }

Forberedelsesbetingelse (sekskant)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: hex, label: "Prepare conditional" }

Datainput/output (hælder mod højre)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: lean-r, label: "Input/Output" }

Datainput/output (hælder mod venstre)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: lean-l, label: "Input/Output" }

Prioriteret handling (trapez)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: trap-b, label: "Priority action" }

Manuel handling (omvendt trapez)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: trap-t, label: "Manual operation" }

Stop (dobbeltcirkel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: dbl-circ, label: "Stop" }

Tekstblok

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: text, label: "This is a text block" }

Kort (rektangel med hak)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: notch-rect, label: "Card" }

Forløb med linje/skygge

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: lin-rect, label: "Lined process" }

Start (lille cirkel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: sm-circ, label: "Small start" }

Stop (cirkel med ramme)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: framed-circle, label: "Stop" }

Forgrening/fletning (langt rektangel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: fork, label: "Fork or Join" }

Sortering (timeglas)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: hourglass, label: "Collate" }

Kommentar (klammer)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: comment, label: "Comment" }

Kommentar til højre (klamme til højre)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: brace-r, label: "Comment" }

Kommentar (klammer på begge sider)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: braces, label: "Comment" }

Kommunikationslink (lyn)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: bolt, label: "Communication link" }

Dokument

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: doc, label: "Document" }

Forsinkelse (halvt afrundet rektangel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: delay, label: "Delay" }

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

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: das, label: "Direct access to storage" }

Disklagring (cylinder med rille)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: lin-cyl, label: "Disk storage" }

Visning (visningsform)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: curv-trap, label: "Display" }

Opdelt behandling (opdelt rektangel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: div-rect, label: "Divided process" }

Uddrag (lille trekant)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: tri, label: "Extract" }

Internt lager (vinduespanel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: win-pane, label: "Internal storage" }

Forbindelsespunkt (udfyldt cirkel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: f-circ, label: "Connect" }

Dokument med linje

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: lin-doc, label: "Lined document" }

Løkkegrænse (femkant med hak)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: notch-pent, label: "Loop limit" }

Manuel fil (vendt trekant)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: flip-tri, label: "Manual file" }

Manuel input (retvinklet trapez)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: sl-rect, label: "Manual input" }

Flere dokumenter (stablede dokumenter)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: docs, label: "Multi-document" }

Flere processer (stablede rektangler)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: processes, label: "Multiple processes" }

Papirbånd (flag)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: flag, label: "Paper tape" }

Lagring af data (sløjfeformet rektangel)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: bow-rect, label: "Data stored" }

Resumé (cirkel med kryds)

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: cross-circ, label: "Summary" }

Mærket dokument

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: tag-doc, label: "Tagged document" }

Markeret forløb

Kode
                            
Kopiér
Integrer
flowchart TD A@{ shape: tag-rect, label: "Tagged process" }

Særlige former i Mermaid-flowdiagrammer

Mermaid har også introduceret billeder for at forbedre dine flowdiagrammer, så du kan inkludere billeder direkte i flowdiagrammet og dermed give mere visuel kontekst og klarhed.

Billedform

Du kan bruge image til at indsætte et billede i et flowdiagram. Syntaksen til at definere et billede er som følger:

                            
Kopiér
Integrer
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 til det billede, der skal vises.
  • label: den tekstetiket, der er knyttet til billedet; den kan være en vilkårlig streng. Hvis den ikke er defineret, vises ingen etiket.
  • pos: etiketens placering. Hvis den ikke er defineret, placeres etiketten som standard nederst på billedet.
  • w: billedets bredde. Hvis den ikke er defineret, bruges billedets naturlige bredde som standard.
  • h: billedets højde. Hvis den ikke er defineret, bruges billedets naturlige højde som standard.
  • constraint: afgør, om billedet begrænser knudens størrelse. Denne indstilling sikrer også, at billedet bevarer sit oprindelige billedformat og justerer højden i forhold til bredden. Hvis den ikke er defineret, er standardværdien off .

Billeder giver dine flowdiagrammer ekstra fleksibilitet og visuel appel, så de bliver mere informative og tiltalende.

Forbindelser mellem knuder

Knuder kan forbindes med forbindelseslinjer og pile. Der findes forskellige typer link, og du kan også knytte en tekststreng til et link.

Link med pil

Kode
                            
Kopiér
Integrer
flowchart LR A-->B

Et åbent link

Kode
                            
Kopiér
Integrer
flowchart LR A --- B

Link med tekst

Kode
                            
Kopiér
Integrer
flowchart LR A-- This is the text! ---B

eller

Kode
                            
Kopiér
Integrer
flowchart LR A --- | This is the text| B

Link med pil og tekst

Kode
                            
Kopiér
Integrer
flowchart LR A-->|text|B

eller

Kode
                            
Kopiér
Integrer
flowchart LR A-- text -->B

Stiplet link

Kode
                            
Kopiér
Integrer
flowchart LR A-.->B;

Stiplet link med tekst

Kode
                            
Kopiér
Integrer
flowchart LR A-. text .->B;

Tykt link

Kode
                            
Kopiér
Integrer
flowchart LR A ==> B

Tykt link med tekst

Kode
                            
Kopiér
Integrer
flowchart LR A == |text| ==> B

Usynligt link

Kode
                            
Kopiér
Integrer
flowchart LR A ~~~ B

Kæde af link

Kode
                            
Kopiér
Integrer
flowchart LR A -- text --> B -- text2 --> C

Du kan også erklære flere knudelink på samme linje, som vist nedenfor:

Kode
                            
Kopiér
Integrer
flowchart LR a --> b & c--> d

Du kan også beskrive afhængigheder som i koden nedenfor:

Kode
                            
Kopiér
Integrer
flowchart LR a --> b & c--> d & e--> f

Hvis du beskriver den samme graf med den grundlæggende syntaks, kræver det 8 linjer. Bemærk, at overdreven brug af denne metode kan gøre et flowdiagram i Markdown-format sværere at læse.

Kode
                            
Kopiér
Integrer
flowchart TB a --> b a --> c b --> d b --> e c --> d c --> e d --> f e --> f

Tilføj ID til en forbindelseslinje

Mermaid understøtter nu at tilføje ID til forbindelseslinjer, svarende til at knytte ID og metadata til knuder. Denne funktion danner grundlag for mere avancerede stil-, klasse- og animationsfunktioner på forbindelseslinjer.

Syntaks:

For at tilføje et ID til en forbindelseslinje skal du sætte ID'et foran forbindelseslinjens syntaks efterfulgt af @-tegnet. For eksempel:

Kode
                            
Kopiér
Integrer
flowchart LR A e1@--> B

I dette eksempel er e1 ID'et for den forbindelseslinje, der forbinder A og B. Du kan bruge dette ID i efterfølgende definitions- eller stiludsagn, ligesom du bruger en knude.

Aktivér animation

Når du har tilføjet et ID til en forbindelseslinje, kan du aktivere animation af forbindelseslinjen ved at definere dens egenskaber:

Kode
                            
Kopiér
Integrer
flowchart LR A e1@==> B e1@{ animate: true }

Dette fortæller Mermaid, at forbindelseslinjen e1 er animeret.

Vælg animationstype

I den første version understøttes to animationshastigheder: fast og slow. At vælge en bestemt animationstype er en nem måde at aktivere animation og angive animationshastigheden på én gang.

Kode
                            
Kopiér
Integrer
flowchart LR A e1@--> B e1@{ animation: fast }

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

Animér med classDef-udsagnet

Du kan også animere en forbindelseslinje ved at tildele den en klasse og derefter definere animationsegenskaber i et classDef-udsagn. For eksempel:

Kode
                            
Kopiér
Integrer
flowchart LR A e1@--> B classDef animate stroke-dasharray: 9,5,stroke-dashoffset: 900,animation: dash 25s linear infinite; class e1 animate

I denne kode:

  • e1@--> 创建了一个 ID 为 e1 的连接线
  • classDef animate definerer en klasse ved navn animate med stil- og animationsegenskaber.
  • class e1 animate anvender klassen animate på forbindelseslinjen e1.

Bemærkning om escape af kommaer: Når du angiver egenskaben stroke-dasharray, skal du huske at escape kommaet, da kommaet bruges som separator i Mermaids stildefinitioner.

Ny piltype

Understøtter nye piltyper

  • Forbindelseslinje med udfyldt cirkel
  • Forbindelseslinje med krydsmarkering

Forbindelseslinje med udfyldt cirkel

Kode
                            
Kopiér
Integrer
flowchart LR A --o B

Forbindelseslinje med krydsmarkering

Kode
                            
Kopiér
Integrer
flowchart LR A --x B

Flerrettet pil

Du kan bruge flerrettede pile, for eksempel:

Kode
                            
Kopiér
Integrer
flowchart LR A o--o B B <--> C C x--x D

Forbindelseslinjens længde

Hver knude i et flowdiagram tildeles et niveau i det renderede diagram ud fra de knuder, den er forbundet til, dvs. et lodret eller vandret niveau (afhængigt af flowdiagrammets retning). Som standard kan et link spænde over et vilkårligt antal niveauer, men du kan kræve, at en given forbindelse er længere end andre ved at tilføje ekstra bindestreger i forbindelsesdefinitionen.

I dette eksempel er der tilføjet to ekstra bindestreger i forbindelsen fra knude B til knude E, så den spænder over to niveauer mere end et almindeligt link:

Kode
                            
Kopiér
Integrer
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B ---->|No| E[End]
Bemærk: En forbindelse kan være længere end det antal niveauer, renderingsmotoren har anmodet om, for at imødekomme andre anmodninger.

Når en forbindelsesetiket skrives midt i forbindelsen, skal der tilføjes ekstra bindestreger på højre side af forbindelsen. Dette eksempel svarer til det foregående:

Kode
                            
Kopiér
Integrer
flowchart TD A[Start] --> B{Is it?} B -->|Yes| C[OK] C --> D[Rethink] D --> B B -- No ----> E[End]

For stiplede linjer eller tykke link er det tegn, der skal tilføjes, et lighedstegn eller en prik, som vist i tabellen nedenfor:

Længde 1 2 3
Almindelig forbindelse --- ---- -----
Almindelig forbindelse med pil --> ---> ---->
Tyk forbindelse === ==== =====
Tyk forbindelse med pil ==> ===> ====>
Stiplet linje -.- -..- -...-
Stiplet linje med pil -.- -..-> -...->

Specialtegn

Du kan sætte tekst i anførselstegn for at gengive mere besværlige tegn. Som vist i eksemplet nedenfor:

Kode
                            
Kopiér
Integrer
flowchart LR id1["This is the (text) in the box"]

Entitetskodning til escape af tegn

Du kan escape tegn ved hjælp af syntaksen i eksemplet.

Kode
                            
Kopiér
Integrer
flowchart LR A["A double quote:#quot;"] --> B["A dec char:#9829;"]

Det angivne tal er decimalt, så # kan kodes som #35. Brug af HTML-tegnnavne understøttes også.

Subgraf

                            
Kopiér
Integrer
subgraph title graph definition end

Nedenfor er et eksempel:

Kode
                            
Kopiér
Integrer
flowchart TB c1-->a2 subgraph one a1-->a2 end subgraph two b1-->b2 end subgraph three c1-->c2 end

Du kan også angive et id for en subgraf.

Kode
                            
Kopiér
Integrer
flowchart TB c1-->a2 subgraph ide1 [one] a1-->a2 end

Rutediagram

Med diagrammer af typen flowdiagram kan du også opsætte forbindelseslinjer til og fra subgrafer, som i flowdiagrammet nedenfor.

Kode
                            
Kopiér
Integrer
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 retning

Når du bruger flowdiagramtypen, kan du bruge et retningsudsagn til at angive subgrafens renderingsretning, som vist nedenfor:

Kode
                            
Kopiér
Integrer
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ænsninger

Hvis nogen knude i subgrafen er forbundet med omverdenen, ignoreres subgrafens retning. Ellers arver subgrafen forældrediagrammets retning:

Kode
                            
Kopiér
Integrer
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-strenge

Markdown-strenge forbedrer flowdiagrammer og mindmaps ved at tilbyde en mere fleksibel strengtype, der understøtter tekstformateringsmuligheder som fed og kursiv samt automatisk ombrydning af tekst i etiketter.

Kode
                            
Kopiér
Integrer
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
  • For at gøre tekst fed skal du bruge to stjerner (**) før og efter teksten.
  • Kursiv bruger en enkelt stjerne (*) før og efter teksten.
  • For traditionelle strenge skal du tilføje et <br>-tag for at ombryde teksten i en knude. Markdown-strenge ombryder dog automatisk teksten, når den er for lang, og du kan starte en ny linje blot ved at bruge et linjeskift i stedet for et <br>-tag.

Denne funktion gælder for knudeetiketter, forbindelseslinjeetiketter og subgrafetiketter

Du kan deaktivere automatisk ombrydning ved at bruge en bestemt syntaks

Kode
                            
Kopiér
Integrer
--- config: markdownAutoWrap: false --- graph LR

Kommentar

Du kan indsætte kommentarer i et flowdiagram, og editoren ignorerer dem. En kommentar skal stå på sin egen linje og skal begynde med dobbelt procenttegn (%%). Al tekst fra kommentarens begyndelse til næste linje betragtes som en kommentar, inklusive enhver flowsyntaks.

Kode
                            
Kopiér
Integrer
flowchart LR %% this is a comment A -- text --> B{node} A -- text --> B -- text2 --> C

Stil og klasse

Linkstil

Du kan angive linkstil. Du vil for eksempel måske style et link, der bevæger sig bagud i processen; da link ikke har ID på samme måde som knuder, skal stilen, som et link skal bruge, bestemmes på anden vis. Brug rækkefølgenummeret fra definitionen af linket, eller brug standardværdien, som gælder for alle link.

                            
Kopiér
Integrer
linkStyle 3 stroke:#ff3,stroke-width:4px,color:red;

Du kan også tilføje stil til flere link ved at adskille linknumrene med kommaer i et enkelt udsagn:

                            
Kopiér
Integrer
linkStyle 1,2,7 color:blue;

Angiv kurvestil for forbindelseslinjer

Hvis standardmetoden ikke opfylder dine behov, kan du angive en kurvestil for forbindelseslinjer mellem elementer. De tilgængelige kurvestile omfatter basis, bumpX, bumpY, cardinal, catmullRom, linear, monotoneX, monotoneY, natural, step, stepAfter og stepBefore.

I eksemplet nedenfor bruger et diagram fra venstre til højre kurvestilen stepBefore.

                            
Kopiér
Integrer
%%{ init: { 'flowchart': { 'curve': 'stepBefore' } } }%% graph LR

Angiv knudestil

Du kan angive en bestemt stil for en knude, f.eks. en tykkere kant eller en anden baggrundsfarve.

Kode
                            
Kopiér
Integrer
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

Klasse

I stedet for at definere stil hver gang er det nemmere at definere en stilklasse og knytte denne klasse til de knuder, der skal se anderledes ud.

En klassedefinition ser sådan ud:

                            
Kopiér
Integrer
classDef className fill:pink,stroke:#333,stroke-width:4px;

Derudover kan du definere stil for flere klasser i et enkelt udsagn:

                            
Kopiér
Integrer
classDef firstClassName,secondClassName font-size:12pt;

Sådan knytter du en klasse til en knude:

                            
Kopiér
Integrer
class nodeId1 className;

Du kan også knytte en klasse til en liste af knuder i et enkelt udsagn:

                            
Kopiér
Integrer
class nodeId1,nodeId2 className;

For at tilføje en klasse kan du bruge :::-operatoren til at knytte klassenavnet til knuden, som vist nedenfor:

Kode
                            
Kopiér
Integrer
flowchart LR A:::someclass --> B classDef someclass fill:#f96

Denne form kan bruges, når du erklærer flere link mellem knuder:

Kode
                            
Kopiér
Integrer
flowchart LR A:::foo & B:::bar --> C:::foobar classDef foo stroke:#f00 classDef bar stroke:#0f0 classDef foobar stroke:#00f

  • I grafdeklarationer behøver udsagn nu ikke længere at slutte med et semikolon. Efter version 0.2.16 er det kun valgfrit at afslutte grafüdsagn med et semikolon. Derfor er grafdeklarationen nedenfor lige så gyldig som den gamle.
  • Der er tilladt et mellemrum mellem knuder og link. Der bør dog ikke være noget mellemrum mellem en knude og dens tekst eller mellem et link og dets tekst. Den gamle grafdeklaration er også stadig gyldig, så denne nye funktion er valgfri og har til formål at forbedre læsbarheden.

Nedenfor er den nye deklaration af forbindelseslinjer, som er lige så gyldig som den gamle.

Kode
                            
Kopiér
Integrer
flowchart LR A[Hard edge] -->|Link text| B(Round edge) B --> C{Decision} C -->|One| D[Result one] C -->|Two| E[Result two]