Sintaxis de diagrama de bloques de Mermaid.js & Guía de diseño de cuadrícula

Un diagrama de bloques es un motor de diseño estructurado utilizado para representar arquitecturas de software complejas, plataformas de hardware o modelos organizativos. Introducido nativamente en Mermaid.js, el bloquemotor trata el lienzo de diseño como una matriz matemática absoluta de cuadrícula. Esto proporciona un control preciso sobre alineaciones de columnas, límites de anidamiento de diseño aislados, bloques de espaciado estructural y configuraciones explícitas de enlaces de puertos de borde.

Comprender la estrategia de la matriz de cuadrícula

A diferencia de los diagramas de flujo de forma libre estándar que adivinan dinámicamente las rutas de diseño, un diagrama de bloques se basa en un sistema rígido de cuadrícula de coordenadas lineales:

  • El umbral de columna:Estableces un techo horizontal estricto utilizando el columnasmodificador. Cuando la cuadrícula se llena con bloques, los elementos adicionales se ajustan limpiamente a la siguiente fila automáticamente.
  • Tamaño según campos de cuadrícula:Por defecto, cada bloque ocupa una sola posición de coordenadas ($1 times 1$). Puedes cambiar este comportamiento asignando anchos de columna explícitos para que los elementos se extiendan perfectamente a través de múltiples pistas.

Estructura básica de sintaxis

Cada diseño comienza con el bloqueencabezado de declaración. A continuación, se establece la capacidad de ancho de fila con la palabra clave columnasy declarando bloques en líneas consecutivas.

bloque
  columnas 3
  componentA["Primer bloque"]
  componentB["Bloque central"]
  componentC["Bloque derecho"]

Referencia de sintaxis

La tabla a continuación desglosa los parámetros de datos fundamentales, palabras clave de estilo personalizado y contenedores estructurales reconocidos nativamente por el intérprete de bloques.

Componente de sintaxis Requisito de tipo Descripción y reglas visuales de diseño
Declaración Identificador de palabra clave Inicializa el lienzo de bloque de matriz de cuadrícula. Debe usar exactamente el bloque cadena de encabezado.
Conjunto de columnas Palabra clave + Entero Define el recuento total de ranuras horizontales antes de envolver las filas (por ejemplo, columnas 4).
Bloque estándar ID + Etiqueta opcional Crea una caja de datos estándar: id["Texto de etiqueta"]. Los decoradores de forma coinciden con la sintaxis de diagrama de flujo (por ejemplo, (()) para círculos, [()] para bases de datos).
Anulación de dimensiones del bloque Bloque de parámetro de dos puntos Anula la huella de cuadrícula de escala de diseño predeterminada $1 times 1$ asignando explícitamente bloques de ancho de columna personalizados: id:ancho.
Elemento de espacio Palabra clave reservada Inserta un mosaico invisible y estructural de espacio en blanco $1 times 1$ en la fila activa usando exactamente la palabra clave espacio palabra clave. Puedes multiplicar los espacios de ancho en línea como espacio:2.
Flecha de bloque ID de entidad especializada Dibuja una caja de flecha transicional gruesa y estructurada dentro de una ranura de cuadrícula: arrowId<["Etiqueta"]>(dirección). Las direcciones incluyen arriba, abajo, izquierda, derecha.
Envoltura compuesta Bloque / Contenedor final Anida una matriz de subcuadrícula independiente y aislada directamente dentro de una ranura de bloque padre: bloque:SubID ... fin. Los sub-bloques pueden declarar sus propíos límites independientes de columnas.

Característica avanzada: Dimensiones de bloque explícitas y modificadores de espacio

Para diseños asimétricos, puedes pasar métricas de tamaño horizontal explícitas directamente a bloques estándar o divisores de espacio usando un separador de notación de dos puntos (:ancho). Esto obliga a los elementos a extenderse sobre múltiples posiciones de cuadrícula de forma limpia.

bloque
  columnas 4
  wideComponent["Encabezado de panel amplio"]:4
  leftBar["Barra lateral"] espacio:2 rightBar["Panel principal"]


Característica avanzada: Tipos de borde, direcciones y opciones de enlace

Conexiones dentro del bloquemotor se dividen en líneas semánticas estándar y flechas de bloque de diseño estructural. Las líneas de conexión estándar admiten especificar restricciones direccionales explícitas para determinar cómo las líneas envuelven los elementos.

1. Conectores de línea estándar

Las conexiones de bloque usan los operadores de enlace estándar (-->, --, <-->). Sin embargo, puedes controlar el enrutamiento agregando direcciones o modificadores dentro de paréntesis:

  • A --> B : Dibuja una línea direccional estándar desde el elemento A hasta el elemento B.
  • A -- x B : Dibuja una ruta de conexión terminada con una marca de “X” que indica una ruta bloqueada.
  • A -- o B : Dibuja una ruta de conexión terminada con un punto de conector en círculo abierto.

2. Flechas de bloque de diseño dinámico

Las flechas de bloque se tratan como componentes de diseño reales que ocupan un bloque de índice de coordenadas real en su matriz de presupuesto de filas. Utilizan propiedades de sintaxis mayor que y menor que para mapear rutas de flujo físicas:

bloque
  columnas 3
  productor["Productor de Datos"]
  flechaMedia<["Transformar Tráfico"]>(derecha)
  consumidor["Consumidor de Datos"]


Característica avanzada: Anidamiento de matriz de sub-bloques (Agrupación compuesta)

El bloque:idenvoltura funciona como un entorno aislado de contexto de caja de diseño. Un contenedor de grupo de aplicaciones puede establecer su propio recuento único de columnas horizontales dentro de un sub-bloque, permitiendo que los componentes complejos se agrupen estrechamente sin influir en el espaciado de la cuadrícula de plantilla de lienzo padre global.

bloque
  columnas 2
  pasarelaRaiz["Pasarela Global"]
  
  bloque:clusterMicroservicios
    columnas 3
    auth["Nodo de Autenticación"]
    api["API Principal"]
    worker["Motor de Trabajo"]
  fin


Plano real: Infraestructura de múltiples niveles con caché

Este plano completo de múltiples filas demuestra una configuración de infraestructura de producción limpia. Establece una disposición de cuadrícula de procesamiento de 3 columnas, utiliza elementos estructuralesespacioelementos para aislar una capa de base de datos, mapea una línea gruesa hacia abajoflechaDeBloque, e aísla un contenedor de sub-sistema interno independiente utilizando un anidado bloque:id ... fin envoltura compuesta.

bloque
  columnas 3

  %% Fila 1: Servicios de Entrada
  dnsClient(("Cliente Web"))
  loadBalancer["Balanceador de Carga de Borde"]
  espacio

  %% Fila 2: Flujo de Conexión hacia Microservicios
  espacio
  downRoute<["Tráfico de Enrutamiento"]>(abajo)
  espacio

  %% Fila 3: Cluster del Entorno de Aplicación Compuesta
  bloque:appCluster
    columnas 2
    authService["Autenticación"]
    apiEngine["Trabajador de API Principal"]
  fin
  espacio
  database[("Base de Datos PostgreSQL")]

  %% Establecer alineaciones estructurales claras entre matrices
  loadBalancer --> appCluster
  appCluster --> database


Errores comunes de sintaxis y limitaciones del sistema

Al compilar mapas precisos de matriz de cuadrícula, tenga en cuenta estas comprobaciones de validación para evitar errores de análisis:

  • Aplicación del presupuesto de columnas:Lleve un registro cuidadoso de su conteo de columnas. Si especifica columnas 3 y escribe 4 bloques secuenciales en una fila, el cuarto bloque caerá automáticamente a la fila 2, lo que puede interrumpir los caminos de conexión izquierda-derecha previstos.
  • Orden de anidamiento compuesto: Al construir contenedores internos con bloque:id, debe sellar siempre el espacio de trabajo de subcuadrícula utilizando la fin palabra clave en una línea aislada antes de declarar elementos posteriores. No cerrar el bloque detendrá la construcción del diagrama.
  • Limitaciones del destino de la flecha de bloque: La propiedad de dirección encerrada entre paréntesis después de una flecha de bloque (por ejemplo, (arriba), (abajo)) debe ser un literal en minúsculas que coincida perfectamente con las palabras clave del sistema. Mayuscular la dirección provocará errores de procesamiento.
  • Colisiones de límites de etiqueta: Decoradores de forma de diagrama de flujo estándar (como paréntesis () para cajas redondas o llaves {} para diamantes) están completamente admitidos. Asegúrese de que todas las etiquetas de texto de visualización dentro de las formas utilicen comillas dobles limpias para evitar la eliminación de caracteres.
Scroll al inicio