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

BlockdiagramSyntax

Blockdiagram

Ett blockdiagram består av block och anslutningar för att visuellt representera komplexa system, processer eller arkitekturer. Block representerar grundläggande komponenter eller funktioner, och anslutningar visar relationerna eller flödet mellan dessa komponenter; blockdiagram är avgörande inom många områden som teknik, programvaruutveckling och processhantering.

Kod
                            
Kopiera
Bädda in
block-beta columns 1 db(("DB")) blockArrowId6<["   "]>(down) block:ID A B["A wide one in the middle"] C end space D ID --> D C --> D style B fill:#f96,stroke:#333,stroke-width:4px

Användning av blockdiagram

Huvudsyftet med ett blockdiagram är att ge en övergripande vy av systemet, så att man enkelt kan förstå och analysera det utan att gå in på de komplexa detaljerna i varje komponent. Detta gör blockdiagram särskilt användbara för att förenkla komplexa system och förklara den övergripande strukturen och samspelet mellan komponenterna i ett system.

Användningsscenario

Blockdiagram har en bred användning inom olika branscher och discipliner, främst:

  • Programvaruarkitektur: inom programvaruutveckling kan blockdiagram användas för att illustrera arkitekturen hos en programvaruapplikation. Detta inkluderar att visa hur olika moduler eller tjänster interagerar, dataflöden och hur komponenter på hög nivå samverkar.
  • Nätverkstopologi: blockdiagram är mycket lämpliga för att representera nätverksarkitekturer inom IT och telekommunikation. De kan visa hur olika nätverksenheter och tjänster är sammankopplade, inklusive routrar, switchar, brandväggar samt hur data flödar i nätverket.
  • Processflödesschema: inom affärsverksamhet och tillverkning kan blockdiagram användas för att skapa flödesscheman. Dessa flödesscheman representerar de olika faserna i en affärs- eller tillverkningsprocess och hjälper till att visualisera stegens ordning, besluts punkter och kontrollflödet.
  • Elsystem: ingenjörer använder blockdiagram för att representera elsystem och kretsar. De kan illustrera elsystemets övergripande struktur, samspelet mellan olika elektriska komponenter samt strömmens flöde.
  • Utbildningssyfte: blockdiagram används också i stor utsträckning i utbildningsmaterial för att förklara komplexa begrepp och system på ett förenklat sätt. Blockdiagram hjälper till att bryta ned och visualisera vetenskapliga teorier, ingenjörsprinciper och tekniska system.

Härnäst kommer vi att gå på djupet med hur man skapar och hanterar blockdiagram med Mermaid, och täcker allt från grundläggande syntax till avancerad konfiguration och stil.

Enkelt blockdiagram

Grundstruktur

Ett blockdiagram består av block som representerar olika entiteter eller komponenter, och i Mermaid kan block enkelt skapas med enkla textetiketter. Den mest grundläggande formen av ett blockdiagram kan vara en serie block utan några förbindelselinjer.

Exempel på enkelt blockdiagram: för att skapa ett enkelt blockdiagram med tre block märkta a, b och c är syntaxen följande:

Kod
                            
Kopiera
Bädda in
block-beta a b c

Denna kod genererar tre horisontellt ordnade block, där varje block automatiskt ges mellanrum och justeras för bästa läsbarhet.

Definiera antalet kolumner som ska användas

Flerkolumnsdiagram

Även om enkla blockdiagram är linjära och enkla kan mer komplexa system kräva en strukturerad layout. Mermaid tillåter att organisera block i flera kolumner, vilket hjälper till att skapa mer komplexa och detaljerade diagram.

Exempel på flerkolumnsdiagram: i fall där block behöver fördelas över flera kolumner kan du ange antalet kolumner och arrangera blocken därefter. Så här skapar du ett blockdiagram med tre kolumner och fyra block, där det fjärde blocket förekommer på den andra raden:

Kod
                            
Kopiera
Bädda in
block-beta columns 3 a b c d

Med denna syntax arrangerar Mermaid blocken a, b, c och d i tre kolumner och radbryter till nästa rad vid behov. Denna funktion är särskilt användbar för att representera hierarkiska eller flerskiktade system.

Avancerad blockkonfiguration

Mermaids avancerade syntax ger diagramdesignen större flexibilitet och komplexitet och kan anpassas till ett bredare spektrum av användningsfall och scenarier.

Justera blockbredd

Spänna över flera kolumner

I mer komplexa diagram kan du behöva block som spänner över flera kolumner för att betona vissa komponenter eller representera större entiteter. Mermaid tillåter att justera blockbredden så att den täcker flera kolumner, vilket förbättrar diagrammets läsbarhet och struktur.

Exempel: för att skapa ett block som spänner över två kolumner kan du ange önskad bredd för varje block:

Kod
                            
Kopiera
Bädda in
block-beta columns 3 a["A label"] b:2 c:2 d

I detta exempel upptar blocket märkt A label en kolumn, medan blocken b, c spänner över 2 kolumner och d tilldelas sin egen kolumn. Denna flexibilitet i blockstorlek är avgörande för att korrekt representera system med komponenter av olika betydelse eller storlek.

Skapa sammansatta block

Nästlade block

Sammansatta block gör det möjligt att representera nästlade eller hierarkiska system, där en komponent innehåller flera underkomponenter.

Exempel: att skapa ett sammansatt block innebär att definiera ett föräldrablock och sedan nästla underblock i det. Så här definierar du syntaxen för ett sammansatt block med nästlade element:

Kod
                            
Kopiera
Bädda in
block-beta block D end A["A: I am a wide one"]

I denna syntax är D ett underblock nästlat i ett större föräldrablock. Denna funktion är särskilt användbar för att beskriva komplexa strukturer, till exempel en server med flera tjänster eller en avdelning inom en större organisationsstruktur.

Automatisk kolumnbredd

Justera bredd

Mermaid tillåter att dynamiskt justera kolumnbredden utifrån blockens innehåll. Kolumnens bredd bestäms av det bredaste blocket i kolumnen, vilket säkerställer att diagrammet förblir balanserat och läsbart.

Exempel: i ett diagram med olika blockstorlekar justerar Mermaid automatiskt kolumnbredden för att passa det största blocket i varje kolumn.

Kod
                            
Kopiera
Bädda in
block-beta columns 3 a:3 block:group1:2 columns 2 h i j k end g block:group2:3 %% columns auto (default) l m n o p q r end

Här demonstreras hur Mermaid dynamiskt justerar kolumnens bredd för att passa det bredaste blocket.

Horisontell sammanslagning av block: i fall där block behöver staplas horisontellt kan kolumnbredd användas för att lösa uppgiften. Följande är syntaxen för ett blockdiagram som skapar 4 block staplade tillsammans:

Kod
                            
Kopiera
Bädda in
block-beta block columns 1 a["A label"] b c d end

I detta exempel justeras det sammanslagna blockets bredd automatiskt till det största underblockets bredd.

Blocktyper och former

Mermaid-blockdiagram är inte begränsade till standardrektanglar. Mermaid erbjuder flera blockformer, vilket möjliggör en mer nyanserad och personlig representation av olika typer av information eller entiteter.

Standardblockformer

Rektangel med rundade hörn

Skapar en ruta med rundade hörn, som kan användas för att representera mjukare eller mer flexibla komponenter:

Kod
                            
Kopiera
Bädda in
block-beta id1("This is the text in the box")

Stadionform

Block i stadionform kan användas för att representera processorienterade komponenter:

Kod
                            
Kopiera
Bädda in
block-beta id1(["This is the text in the box"])

Form för delprocess

Används för att representera en delprocess eller en innesluten process, representeras av ett rektangelblock med dubbla vertikala linjer:

Kod
                            
Kopiera
Bädda in
block-beta id1[["This is the text in the box"]]

Cylinder

Cylinderformen är mycket lämplig för att representera databas- eller lagringskomponenter:

Kod
                            
Kopiera
Bädda in
block-beta id1[("Database")]

Cirkel

Cirkeln kan användas för att representera centraliserade eller kritiska komponenter:

Kod
                            
Kopiera
Bädda in
block-beta id1(("This is the text in the circle"))

Asymmetrisk form, romb och hexagon

Använd romb för beslut, och asymmetrisk form och hexagon för unika eller specialiserade processer:

Asymmetrisk form
Kod
                            
Kopiera
Bädda in
block-beta id1>"This is the text in the box"]
Romb
Kod
                            
Kopiera
Bädda in
block-beta id1{"This is the text in the box"}
Hexagon
Kod
                            
Kopiera
Bädda in
block-beta id1{{"This is the text in the box"}}

Parallellogram och trapets

Parallellogram och trapets är mycket lämpliga för indata/utdata och övergångsprocesser

Kod
                            
Kopiera
Bädda in
block-beta id1[/"This is the text in the box"/] id2["This is the text in the box"] A[/"Christmas"] B["Go shopping"/]

Dubbelcirkel

För att markera kritiska eller högprioriterade komponenter är dubbla cirklar mycket effektiva:

Kod
                            
Kopiera
Bädda in
block-beta id1((("This is the text in the circle")))

Pilblock och tomma block

Pilblock

Blockpilar kan visuellt visa riktningen eller flödet inom en process:

Kod
                            
Kopiera
Bädda in
block-beta blockArrowId<["Label"]>(right) blockArrowId2<["Label"]>(left) blockArrowId3<["Label"]>(up) blockArrowId4<["Label"]>(down) blockArrowId5<["Label"]>(x) blockArrowId6<["Label"]>(y) blockArrowId6<["Label"]>(x, down)

Tomt block

Tomma block kan användas för att skapa tomrum, vilket är användbart för layout och läsbarhet:

Kod
                            
Kopiera
Bädda in
block-beta columns 3 a space b c d e
Kod
                            
Kopiera
Bädda in
block-beta ida space:3 idb idc

Observera att du kan ange antalet kolumner som ett tomt block upptar med siffersymbolen space:num , där num anger kolumnbredden. Du kan också använda space , vilket som standard är en kolumn.

Standardformer och specialformer i Mermaid förstärker blockdiagrammets uttrycksförmåga, vilket möjliggör en mer exakt och kontextuell representation.

Förbind block med linjer

En nyckelegenskap hos Mermaid-blockdiagram är möjligheten att förbinda olika block med olika typer av linjer eller länkar.

Grundläggande förbindelser och piltyper

För att förbinda block behöver du använda pilar eller linjer. Dessa anslutningar beskriver relationerna eller informationsflödet mellan blocken. Mermaid erbjuder en rad piltyper för att möta olika diagrambehov.

Grundläggande länkar

Skapa en enkel länk med en pil som visar riktningen eller flödet från ett block till ett annat:

Kod
                            
Kopiera
Bädda in
block-beta A space B A-->B

Detta exempel visar en direkt förbindelse från block A till block B.

Text på länkar

Förutom att förbinda block behöver relationer ofta beskrivas eller märkas. Mermaid tillåter att lägga till text på länkar, vilket ger länken sammanhang.

För att lägga till text på en länk är syntaxen att inkludera texten i länkdefinitionen:

Kod
                            
Kopiera
Bädda in
block-beta A space:2 B A-- "X" -->B
Kanter och stil:
Kod
                            
Kopiera
Bädda in
block-beta columns 1 db(("DB")) blockArrowId6<["   "]>(down) block:ID A B["A wide one in the middle"] C end space D ID --> D C --> D style B fill:pink,stroke:#333,stroke-width:4px

Stil och anpassning

Förutom blockdiagrammets struktur och layout erbjuder Mermaid också ett stort antal stilalternativ, och dessa anpassningsfunktioner möjliggör skapandet av mer visuellt särpräglade och informativa diagram.

Stil för enskilda block

Mermaid kan utföra detaljerad stilsättning av enskilda block; du kan tillämpa olika CSS-egenskaper, till exempel färg, linje och kantlinjetjocklek.

Anpassa stilen för ett enskilt block

För att tillämpa en anpassad stil på ett block kan du använda style -syntaxen följt av blockets identifierare och önskade CSS-egenskaper:

Kod
                            
Kopiera
Bädda in
block-beta id1 space id2 id1("Start")-->id2("Stop") style id1 fill:pink,stroke:#333,stroke-width:4px style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5

Klassstil

Mermaid stöder att tillämpa stilar på klasser. Om du vill tillämpa en uppsättning specifika stilar på flera element är det enklare att använda stilsättning, eftersom du bara behöver länka dessa element till en klass.

Ange stil för en enskild klass

Kod
                            
Kopiera
Bädda in
block-beta A space B A-->B classDef blue fill:pink,stroke:#333,stroke-width:4px; class A blue style B fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5

Här definieras en klass som heter blue och tillämpas på block A, medan block B tar emot en separat stil.

Användningsfall

När Mermaid-blockdiagrammets modulära diagram tillämpas på verkliga scenarier visar dess mångsidighet sig till fullo.

Detaljerade exempel på olika funktioner

Genom strukturelement, länkar och stilelement kan vi skapa Mermaid-blockdiagram som spelar specifika roller i olika sammanhang.

Systemarkitektur

Följande är en enkel programvarusystemarkitektur med sammankopplade komponenter:

Kod
                            
Kopiera
Bädda in
block-beta columns 3 Frontend blockArrowId6<[" "]>(right) Backend space:2 down<[" "]>(down) Disk left<[" "]>(left) Database[("Database")] classDef front fill:pink,stroke:#333; classDef back fill:#f96,stroke:#333; class Frontend front class Backend,Database back

Detta exempel visar en grundläggande arkitektur med frontend, backend och databas, där blockens utseende varierar för att skilja olika komponenttyper åt.

Affärsprocess

Följande är en affärsprocess med besluts punkter och flera faser:

Kod
                            
Kopiera
Bädda in
block-beta columns 3 Start(("Start")) space:2 down<[" "]>(down) space:2 Decision{{"Make Decision"}} right<["Yes"]>(right) Process1["Process A"] downAgain<["No"]>(down) space r3<["Done"]>(down) Process2["Process B"] r2<["Done"]>(right) End(("End")) style Start fill:pink; style End fill:pink;

Dessa verkliga exempel belyser det praktiska värdet av Mermaid-blockdiagram när det gäller att förenkla komplex information och möjliggöra effektiv kommunikation över domängränser.

Felsökning

Att skapa komplexa blockdiagram med Mermaid-syntax kan ibland vara utmanande; här listas vanliga syntaxfel och tips för att hantera mer komplexa diagramstrukturer.

Vanliga syntaxfel

Att undvika vanliga syntaxfel är nyckeln till att använda Mermaid-blockdiagram smidigt.

Länkfel

Att använda felaktig länksyntax kan leda till oväntade resultat eller trasiga diagram:

                            
Kopiera
Bädda in
block-beta A - B

Rättelse: se till att pilar (--> eller ---) används korrekt för att förbinda blocken, så att förbindelsens riktning och typ definieras. Dessutom är en av grundprinciperna för blockdiagram att författaren har full kontroll över blockens position, så i exemplet ovan behöver mellanslag läggas till mellan blocken:

Kod
                            
Kopiera
Bädda in
block-beta A space B A --> B

Felaktig stilplacering

Att tillämpa stilar i fel sammanhang eller med felaktig syntax kan leda till att stilsättningen inte fungerar som avsett:

Kod
                            
Kopiera
Bädda in
block-beta A style A fillpink;

Rättelse: se till att stil egenskaper separeras korrekt med kommatecken och använd rätt format för CSS-egenskaper för att korrigera syntaxen:

Kod
                            
Kopiera
Bädda in
block-beta A style A fill:pink,stroke:#333;