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

BlokdiagramSyntaks

Blokdiagram

Et blokdiagram består af blokke og forbindelser, der intuitivt repræsenterer komplekse systemer, processer eller arkitekturer. Blokkene repræsenterer grundlæggende komponenter eller funktioner, og forbindelserne viser relationerne eller forløbet mellem disse komponenter. Blokdiagrammer er afgørende inden for en lang række områder som teknik, softwareudvikling og processtyring.

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

Anvendelse af blokdiagrammer

Hovedformålet med et blokdiagram er at give et overordnet billede af systemet, så folk nemt kan forstå og analysere det uden at gå i dybden med hver komponents komplekse detaljer. Dette gør blokdiagrammer særligt nyttige til at forenkle komplekse systemer og til at forklare den overordnede struktur og interaktion mellem komponenterne i et system.

Anvendelsesscenarier

Blokdiagrammer anvendes bredt i forskellige brancher og fagområder, herunder primært:

  • Softwarearkitektur: I softwareudvikling kan blokdiagrammer bruges til at illustrere softwareapplikationers arkitektur. Det omfatter at vise, hvordan de enkelte moduler eller tjenester interagerer, dataflow og interaktionen mellem overordnede komponenter.
  • Netværkstopologidiagrammer: Blokdiagrammer er velegnede til at repræsentere netværksarkitekturer i IT og telekommunikation. De kan vise, hvordan forskellige netværksenheder og -tjenester forbindes med hinanden, herunder routere, switches, firewalls samt dataflowet i netværket.
  • Procesdiagrammer: I erhvervsliv og produktion kan blokdiagrammer bruges til at oprette procesdiagrammer. Disse procesdiagrammer repræsenterer de enkelte faser af en forretnings- eller produktionsproces og hjælper med at visualisere trinrækkefølge, beslutningspunkter og kontrolflow.
  • Elektriske systemer: Ingeniører bruger blokdiagrammer til at repræsentere elektriske systemer og kredsløb. De kan illustrere det elektriske systems overordnede struktur, samspillet mellem forskellige elektriske komponenter samt strømmens flow.
  • Uddannelsesformål: Blokdiagrammer bruges også i vid udstrækning i undervisningsmaterialer til på en forenklet måde at forklare komplekse begreber og systemer. Blokdiagrammer hjælper med at opdele og visualisere videnskabelige teorier, ingeniørprincipper og tekniske systemer.

Dernæst går vi i dybden med, hvordan man opretter og arbejder med blokdiagrammer i Mermaid, og dækker alt fra grundlæggende syntaks til avanceret konfiguration og stil.

Simpelt blokdiagram

Grundlæggende struktur

Et blokdiagram består af blokke, der repræsenterer forskellige entiteter eller komponenter; i Mermaid kan blokke nemt oprettes med enkle tekstetiketter. Den mest grundlæggende form for et blokdiagram kan være en række blokke uden nogen forbindelseslinjer.

Eksempel på simpelt blokdiagram: For at oprette et simpelt blokdiagram med tre blokke mærket a, b og c er syntaksen som følger:

Kode
                            
Kopiér
Integrer
block-beta a b c

Denne kode genererer tre vandret arrangerede blokke, og hver blok afstandjusteres og justeres automatisk for optimal læsbarhed.

Angiv antallet af kolonner, der skal bruges

Flerkolonnediagram

Selvom et simpelt blokdiagram er lineært og enkelt, kan mere komplekse systemer kræve et struktureret layout. Mermaid gør det muligt at organisere blokke i flere kolonner, hvilket hjælper med at skabe mere komplekse og detaljerede diagrammer.

Eksempel på flerkolonnediagram: Når blokke skal fordeles over flere kolonner, kan du angive antallet af kolonner og arrangere blokkene derefter. Sådan opretter du et blokdiagram med tre kolonner og fire blokke, hvor den fjerde blok vises på den anden linje:

Kode
                            
Kopiér
Integrer
block-beta columns 3 a b c d

Med denne syntaks arrangerer Mermaid blokkene a, b, c og d i tre kolonner og ombryder efter behov til næste linje. Denne funktion er særligt nyttig til at repræsentere lagdelte eller flerlagssystemer.

Avanceret blokkonfiguration

Mermaids avancerede syntaks giver større fleksibilitet og kompleksitet i diagramdesignet og kan tilpasses en bredere vifte af anvendelsestilfælde og scenarier.

Tilpas blokbredden

Spænder over flere kolonner

I mere komplekse diagrammer har du muligvis brug for blokke, der spænder over flere kolonner, for at fremhæve bestemte komponenter eller repræsentere større entiteter. Mermaid giver dig mulighed for at justere blokbredden, så den dækker flere kolonner, hvilket forbedrer diagrammets læsbarhed og struktur.

Eksempel: For at oprette en blok, der spænder over to kolonner, kan du angive den ønskede bredde for hver blok:

Kode
                            
Kopiér
Integrer
block-beta columns 3 a["A label"] b:2 c:2 d

I dette eksempel optager blokken mærket A label én kolonne, mens blokkene b og c spænder over 2 kolonner, og d tildeles sin egen kolonne. Denne fleksibilitet i blokstørrelse er afgørende for nøjagtigt at repræsentere systemer med komponenter af forskellig betydning eller størrelse.

Opret en sammensat blok

Indlejrede blokke

Sammensatte blokke gør det muligt at repræsentere indlejrede eller lagdelte systemer, hvor én komponent indeholder flere underkomponenter.

Eksempel: Oprettelse af en sammensat blok indebærer at definere en forældreblok og derefter indlejre underblokke i den. Nedenfor ses syntaksen til at definere en sammensat blok med indlejrede elementer:

Kode
                            
Kopiér
Integrer
block-beta block D end A["A: I am a wide one"]

I denne syntaks er D en underblok, der er indlejret i en større forældreblok. Denne funktion er særligt nyttig til at beskrive komplekse strukturer, f.eks. en server med flere tjenester eller en afdeling inden for en større organisationsramme.

Automatisk kolonnebredde

Tilpas bredden

Mermaid gør det muligt dynamisk at justere kolonnebredden ud fra blokkenes indhold. Kolonnens bredde bestemmes af den bredeste blok i kolonnen, hvilket sikrer, at diagrammet forbliver afbalanceret og læsbart.

Eksempel: I et diagram med forskellige blokstørrelser justerer Mermaid automatisk kolonnebredden, så den passer til den største blok i hver kolonne.

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

Her demonstreres, hvordan Mermaid dynamisk justerer kolonnebredden, så den passer til den bredeste blok.

Vandret sammenføjning af blokke: Når blokke skal stables vandret, kan opgaven løses med kolonnebredde. Nedenfor ses syntaksen til at oprette et blokdiagram med 4 blokke stablet sammen:

Kode
                            
Kopiér
Integrer
block-beta block columns 1 a["A label"] b c d end

I dette eksempel justeres bredden af den sammenføjede blok automatisk til bredden af den største underblok.

Bloktyper og former

Mermaid-blokdiagrammer er ikke begrænset til standardrektangler. Mermaid tilbyder en lang række blokformer, hvilket muliggør en mere detaljeret og personlig repræsentation af forskellige typer information eller entiteter.

Standardblokformer

Afrundet rektangel

Opretter en afrundet rektangelblok, som kan bruges til at repræsentere en blødere eller mere fleksibel komponent:

Kode
                            
Kopiér
Integrer
block-beta id1("This is the text in the box")

Stadionform

En stadionformet blok kan bruges til at repræsentere procesorienterede komponenter:

Kode
                            
Kopiér
Integrer
block-beta id1(["This is the text in the box"])

Subprocesform

Bruges til at repræsentere en subproces eller en indeholdt proces, vist som en rektangelblok med dobbelte lodrette linjer:

Kode
                            
Kopiér
Integrer
block-beta id1[["This is the text in the box"]]

Cylinderform

Cylinderformen er velegnet til at repræsentere databaser eller lagerkomponenter:

Kode
                            
Kopiér
Integrer
block-beta id1[("Database")]

Cirkel

Cirkelformen kan bruges til at repræsentere centrale eller kritiske komponenter:

Kode
                            
Kopiér
Integrer
block-beta id1(("This is the text in the circle"))

Asymmetrisk form, rombe og sekskant

Brug romben til beslutninger, og brug den asymmetriske form og sekskanten til unikke eller specialiserede processer:

Asymmetrisk form
Kode
                            
Kopiér
Integrer
block-beta id1>"This is the text in the box"]
Rombe
Kode
                            
Kopiér
Integrer
block-beta id1{"This is the text in the box"}
Sekskant
Kode
                            
Kopiér
Integrer
block-beta id1{{"This is the text in the box"}}

Parallelogram og trapez

Parallelogrammet og trapezen er velegnede til input/output og overgangsprocesser

Kode
                            
Kopiér
Integrer
block-beta id1[/"This is the text in the box"/] id2["This is the text in the box"] A[/"Christmas"] B["Go shopping"/]

Dobbeltcirkel

For at fremhæve kritiske eller højt prioriterede komponenter kan en dobbeltcirkel være meget effektiv:

Kode
                            
Kopiér
Integrer
block-beta id1((("This is the text in the circle")))

Pilblokke og tomme blokke

Pilblok

En blokpil kan intuitivt vise retningen eller flowet i en proces:

Kode
                            
Kopiér
Integrer
block-beta blockArrowId<["Label"]>(right) blockArrowId2<["Label"]>(left) blockArrowId3<["Label"]>(up) blockArrowId4<["Label"]>(down) blockArrowId5<["Label"]>(x) blockArrowId6<["Label"]>(y) blockArrowId6<["Label"]>(x, down)

Tom blok

Tomme blokke kan bruges til at skabe tomrum, hvilket er nyttigt for layout og læsbarhed:

Kode
                            
Kopiér
Integrer
block-beta columns 3 a space b c d e
Kode
                            
Kopiér
Integrer
block-beta ida space:3 idb idc

Bemærk, at du kan bruge talsymbolet space:num til at angive, hvor mange kolonner en tom blok optager, hvor num angiver kolonnebredden. Du kan også bruge space, som som standard er én kolonne.

Standardformer og særlige former i Mermaid forbedrer blokdiagrammers udtryksevne og muliggør en mere nøjagtig og kontekstafhængig repræsentation.

Forbind blokke med linjer

En nøglefunktion ved Mermaid-blokdiagrammer er muligheden for at forbinde de enkelte blokke med forskellige typer linjer eller link.

Grundlæggende forbindelser og piltyper

For at forbinde blokke skal du bruge pile eller linjer; disse forbindelser beskriver relationerne eller informationsflowet mellem blokkene. Mermaid tilbyder en række piltyper til at opfylde forskellige diagrambehov.

Grundlæggende link

Opret et simpelt link med en pil, der viser retningen eller flowet fra én blok til en anden:

Kode
                            
Kopiér
Integrer
block-beta A space B A-->B

Dette eksempel viser en direkte forbindelse fra blok A til blok B.

Tekst på link

Ud over at forbinde blokke er det ofte også nødvendigt at beskrive eller markere relationen. Mermaid giver dig mulighed for at tilføje tekst på linket, hvilket giver linket kontekst.

For at tilføje tekst til et link skal du medtage teksten i linkdefinitionen:

Kode
                            
Kopiér
Integrer
block-beta A space:2 B A-- "X" -->B
Kant og stil:
Kode
                            
Kopiér
Integrer
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 og tilpasning

Ud over strukturen og layoutet i blokdiagrammer tilbyder Mermaid også en lang række stilindstillinger; disse tilpasningsmuligheder gør det muligt at skabe mere visuelt særprægede og informative diagrammer.

Stil for en enkelt blok

Mermaid kan foretage detaljerede stilindstillinger for en enkelt blok, og du kan anvende forskellige CSS-egenskaber som farve, streg og kanttykkelse.

Tilpas stilen for en enkelt blok

For at anvende en brugerdefineret stil på en blok kan du bruge style-syntaksen efterfulgt af blokkens identifikator og de ønskede CSS-egenskaber:

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

Klassestil

Mermaid understøtter anvendelse af stil på klasser. Hvis du vil anvende et bestemt sæt stile på flere elementer, er det nemmere at bruge stilindstillinger, fordi du blot skal knytte disse elementer til en klasse.

Angiv stil for en enkelt klasse

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

Her defineres en klasse ved navn blue, og den anvendes på blok A, mens blok B får en separat stil.

Anvendelseseksempler

Når Mermaids modulære blokdiagrammer anvendes i virkelige scenarier, kommer deres alsidighed virkelig til udtryk.

Detaljerede eksempler på forskellige funktioner

Gennem strukturelementer, link og stil kan vi oprette Mermaid-blokdiagrammer, der spiller en bestemt rolle i forskellige sammenhænge.

Systemarkitektur

Nedenfor ses en simpel softwarearkitektur med indbyrdes forbundne komponenter:

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

Dette eksempel viser en grundlæggende arkitektur med frontend, backend og database, hvor de enkelte blokke vises forskelligt for at skelne mellem forskellige komponenttyper.

Forretningsproces

Nedenfor ses en forretningsproces med beslutningspunkter og flere faser:

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

Disse virkelige eksempler fremhæver den praktiske værdi af Mermaid-blokdiagrammer med hensyn til at forenkle kompleks information og muliggøre effektiv kommunikation på tværs af fagområder.

Fejlfinding

Det kan nogle gange være en udfordring at lave komplekse blokdiagrammer med Mermaids syntaks; her oplistes almindelige syntaksfejl, og der gives tips til at håndtere mere komplekse diagramstrukturer.

Almindelige syntaksfejl

At undgå almindelige syntaksfejl er nøglen til problemfri brug af Mermaid-blokdiagrammer.

Linkfejl

Brug af ukorrekt linksyntaks kan føre til uventede resultater eller ødelagte diagrammer:

                            
Kopiér
Integrer
block-beta A - B

Rettelse: Sørg for at bruge pile korrekt (--> eller ---) til at forbinde blokkene, så forbindelsens retning og type defineres. Desuden er et af de grundlæggende principper i blokdiagrammer, at forfatteren har fuld kontrol over blokkenes placering, så i eksemplet ovenfor skal der tilføjes mellemrum mellem blokkene:

Kode
                            
Kopiér
Integrer
block-beta A space B A --> B

Forkert stilsætning

Anvendelse af stil i en forkert kontekst eller med ukorrekt syntaks kan føre til, at stilen ikke anvendes som forventet:

Kode
                            
Kopiér
Integrer
block-beta A style A fillpink;

Rettelse: Sørg for at adskille stilattributter korrekt med kommaer og bruge det korrekte format for CSS-egenskaber til at rette syntaksen:

Kode
                            
Kopiér
Integrer
block-beta A style A fill:pink,stroke:#333;