Syntax du diagramme de blocs Mermaid.js & Guide de disposition en grille

Un diagramme de blocs est un moteur de disposition structuré utilisé pour représenter des architectures logicielles complexes, des plateformes matérielles ou des modèles organisationnels. Introduit nativement dans Mermaid.js, le blockmoteur traite la zone de disposition comme une matrice mathématique absolue. Cela permet un contrôle précis sur l’alignement des colonnes, les limites d’empilement de disposition isolées, les blocs d’espacement structurels et les configurations explicites de liaison des ports aux bords.

Comprendre la stratégie de la matrice de grille

Contrairement aux schémas de flux standards en libre-forme qui devinent dynamiquement les trajectoires de disposition, un diagramme de blocs repose sur un système rigide de grille de coordonnées linéaires :

  • Le seuil de colonne :Vous définissez un plafond horizontal strict en utilisant le colonnesmodificateur. Lorsque la grille est remplie de blocs, les éléments supplémentaires se replient proprement sur la ligne suivante automatiquement.
  • Taille par champs de grille :Par défaut, chaque bloc occupe une seule case de coordonnées ($1 times 1$). Vous pouvez modifier ce comportement en attribuant des largeurs de colonnes explicites pour étendre les éléments sur plusieurs pistes parfaitement.

Structure de syntaxe de base

Chaque disposition commence par la déclaration blocken-tête de déclaration. Elle est suivie de la définition de la capacité de largeur de ligne avec le mot-clé colonneset de la déclaration des blocs sur des lignes consécutives.

block
  colonnes 3
  componentA["Premier Bloc"]
  componentB["Bloc du milieu"]
  componentC["Bloc de droite"]

Référence de syntaxe

Le tableau ci-dessous détaille les paramètres de données fondamentaux, les mots-clés de style personnalisés et les conteneurs structurels reconnus nativement par l’interpréteur de blocs.

Composant de syntaxe Exigence de type Description et règles de disposition visuelle
Déclaration Identificateur de mot-clé Initialise la zone de dessin de bloc de matrice de grille. Doit utiliser exactement bloc chaîne d’en-tête.
Jeux de colonnes Mot-clé + Entier Définit le nombre total de fentes horizontales avant le retour à la ligne (par exemple, colonnes 4).
Bloc standard ID + Étiquette facultative Crée une boîte de données standard : id["Texte de l'étiquette"]. Les décorateurs de forme correspondent à la syntaxe des diagrammes de flux (par exemple, (()) pour les cercles, [()] pour les bases de données).
Remplacement des dimensions du bloc Bloc de paramètre deux-points Remplace la taille par défaut de la grille d’agencement $1 times 1$ en attribuant explicitement des blocs de largeur de colonne personnalisés : id:largeur.
Élément d’espace Mot-clé réservé Insère une tuile invisible et structurale $1 times 1$ vide dans la ligne active en utilisant exactement le mot-clé espace mot-clé. Vous pouvez multiplier les largeurs en ligne comme espace:2.
Flèche du bloc ID d’entité spécialisée Affiche une boîte fléchée structurée et épaisse à l’intérieur d’une cellule de grille : arrowId<["Étiquette"]>(direction). Les directions incluent haut, bas, gauche, droite.
Enveloppe composite Bloc / Conteneur de fin Intègre une matrice de sous-grille autonome et isolée directement dans une cellule de bloc parent : bloc:SubID ... fin. Les sous-blocs peuvent déclarer leurs propres limites de colonnes indépendantes.

Fonctionnalité avancée : Dimensions explicites de bloc et modificateurs d’espace

Pour les mises en page asymétriques, vous pouvez passer des métriques de taille horizontale explicites directement sur des blocs standards ou des séparateurs d’espace en utilisant un séparateur de notation deux-points (:largeur). Cela force les éléments à s’étendre sur plusieurs positions de grille de manière propre.

bloc
  colonnes 4
  wideComponent["En-tête de tableau de bord large"]:4
  leftBar["Barre latérale"] espace:2 rightBar["Panneau principal"]


Fonctionnalité avancée : Types d’arêtes, directions et options de lien

Les connexions dans le bloc moteur sont divisées en lignes sémantiques standard et en flèches de bloc de disposition structurelle. Les lignes de connexion standard permettent de spécifier des contraintes directionnelles explicites pour déterminer comment les lignes s’enroulent autour des éléments.

1. Connecteurs de ligne standard

Les connexions de bloc utilisent les opérateurs de lien standard (-->, --, <-->). Toutefois, vous pouvez contrôler le routage en ajoutant des directions ou des modificateurs entre parenthèses :

  • A --> B : Dessine une ligne directionnelle standard depuis l’élément A vers l’élément B.
  • A -- x B : Dessine un chemin de connexion terminé par une marque « X » indiquant un chemin bloqué.
  • A -- o B : Dessine un chemin de connexion terminé par un point de connexion en cercle ouvert.

2. Flèches de bloc de mise en page dynamique

Les flèches de bloc sont traitées comme des composants de mise en page réels qui occupent un bloc d’indice de coordonnées réel dans votre matrice de budget de ligne. Elles utilisent des propriétés de syntaxe supérieure et inférieure pour cartographier les chemins de flux physiques :

block
  columns 3
  producer["Producteur de données"]
  midArrow<["Transformer le trafic"]>(right)
  consumer["Consommateur de données"]


Fonctionnalité avancée : Empilement de matrices de sous-bloc (regroupement composé)

Le block:id enveloppe agit comme un environnement contextuel de boîte de mise en page isolée. Un conteneur de groupe d’application peut établir son propre nombre unique de colonnes horizontales à l’intérieur d’un sous-bloc, permettant aux composants complexes de se regrouper étroitement sans influencer l’espacement de la grille du modèle global de canevas parent.

block
  columns 2
  rootGateway["Passerelle globale"]
  
  block:microserviceCluster
    columns 3
    auth["Nœud d'authentification"]
    api["API principale"]
    worker["Moteur de traitement"]
  end


Maquette du monde réel : Infrastructure multi-niveaux avec cache

Cette maquette complète, à plusieurs lignes, démontre une configuration d’infrastructure de production propre. Elle établit une disposition en grille de traitement à 3 colonnes, utilise des éléments structuraux espace éléments pour isoler un niveau de base de données, cartographie une descente épaisse flècheBloc, et isole un conteneur de sous-système interne séparé en utilisant un bloc:id ... fin enveloppe composite.

bloc
  colonnes 3

  %% Ligne 1 : Services d'entrée
  dnsClient(("Client Web"))
  chargeurEquilibrage["Équilibreur de charge Edge"]
  espace

  %% Ligne 2 : Flux de connexion descendant vers les microservices
  espace
  routeDescendante<["Transférer le trafic"]>(descendant)
  espace

  %% Ligne 3 : Cluster de l'environnement d'application composite
  bloc:appCluster
    colonnes 2
    authService["Authentification"]
    apiEngine["Travailleur API principale"]
  fin
  espace
  baseDonnees[("Base de données PostgreSQL")]

  %% Établir des alignements structurels clairs entre les matrices
  chargeurEquilibrage --> appCluster
  appCluster --> baseDonnees


Péchés courants de syntaxe et contraintes du système

Lors de la compilation de cartes matricielles précises, gardez à l’esprit ces vérifications de validation pour éviter les erreurs d’analyse syntaxique :

  • Application du budget de colonnes : Suivez attentivement le nombre de colonnes. Si vous spécifiez colonnes 3 et écrivez 4 blocs séquentiels sur une ligne, le quatrième bloc passera automatiquement à la ligne 2, ce qui peut rompre les chemins de connexion gauche à droite prévus.
  • Ordre d’empilement composite : Lors de la construction de conteneurs internes avec bloc:id, vous devez toujours sceller l’espace de travail sous-matrice en utilisant le mot-clé fin sur une ligne isolée avant de déclarer les éléments suivants. En oubliant de fermer le bloc, la construction du diagramme sera interrompue.
  • Limitations de la cible de flèche de bloc : La propriété de direction encadrée entre parenthèses après une flèche de bloc (par exemple, (haut), (bas)) doit être un littéral en minuscules correspondant parfaitement aux mots-clés du système. Mettre en majuscule la direction entraînera des erreurs de traitement.
  • Chevauchements de limites d’étiquette : Décorateurs de forme de diagramme de flux standard (comme les parenthèses () pour les boîtes rondes ou les accolades {} pour les diamants) sont entièrement pris en charge. Assurez-vous que toutes les étiquettes de texte affichées à l’intérieur des formes utilisent des guillemets doubles propres pour éviter la suppression de caractères.
Retour en haut