07. Manual de Uso de Mermaid

Manuales 6 de sep. de 2026

Apéndice Final: Guía de Referencia Rápida de Sintaxis Mermaid

Apéndice de Sintaxis Agrupada, usala como una hoja de trucos (cheatsheet) de rápida consulta.


1. Diagramas de Flujo (flowchart)

flowchart TD
    %% 1. Formas de Nodos
    A[Rectángulo estándar]
    B(Esquinas redondeadas)
    C([Forma de píldora])
    D[[Subrutina]]
    E[(Base de Datos)]
    F((Círculo))
    G>'Banderín']
    H{Rombo de Decisión}

    %% 2. Tipos de Conexiones
    A --> B
    A --- C
    A -- "Texto" --> D
    A -->|Texto alternativo| E
    A -.- F
    A -. "Texto" .-> G
    A ==> H
    A == "Texto" ==> B

    %% 3. Enlaces Múltiples
    A & B --> C & D
  

flowchart TD
    %% 1. Formas de Nodos
    A[Rectángulo estándar]
    B(Esquinas redondeadas)
    C([Forma de píldora])
    D[[Subrutina]]
    E[(Base de Datos)]
    F((Círculo))
    G>'Banderín']
    H{Rombo de Decisión}

    %% 2. Tipos de Conexiones
    A --> B
    A --- C
    A -- "Texto" --> D
    A -->|Texto alternativo| E
    A -.- F
    A -. "Texto" .-> G
    A ==> H
    A == "Texto" ==> B

    %% 3. Enlaces Múltiples
    A & B --> C & D

Subgrafos

flowchart LR
    subgraph Grupo1 [Título de la Sección]
        A --> B
    end
    subgraph Grupo2 [Otra Sección]
        C --> D
    end
    Grupo1 --> Grupo2

  

flowchart LR
    subgraph Grupo1 [Título de la Sección]
        A --> B
    end
    subgraph Grupo2 [Otra Sección]
        C --> D
    end
    Grupo1 --> Grupo2

2. Diagramas de Secuencia (sequenceDiagram)

sequenceDiagram
    autonumber                  %% Numera las llamadas automáticamente

    %% Declaración de Participantes y Actores
    actor U as Usuario
    participant A as Frontend
    participant B as Backend (API)

    %% Tipos de Mensajes
    U ->> A: Petición sincrónica (Línea continua con flecha)
    A -->> U: Respuesta sincrónica (Línea punteada con flecha)
    A -x B: Llamada asincrónica (Con cruz)
    A -) B: Llamada asincrónica (Flecha abierta)

    %% Activación de barras de estado
    A ->>+ B: Procesar (+)
    Note over B: Trabajo interno...
    B -->>- A: Finalizado (-)

    %% Bloques de Control
    alt Caso Éxito
        B -->> U: 200 OK
    else Caso Error
        B -->> U: 500 Error
    end

    opt Paso Opcional
        A ->> B: Log evento
    end

    loop Cada 5 segundos
        A ->> B: Polling
    end

    par Tareas Paralelas
        A ->> B: Tarea 1
    and
        A ->> B: Tarea 2
    end

  

sequenceDiagram
    autonumber                  %% Numera las llamadas automáticamente

    %% Declaración de Participantes y Actores
    actor U as Usuario
    participant A as Frontend
    participant B as Backend (API)

    %% Tipos de Mensajes
    U ->> A: Petición sincrónica (Línea continua con flecha)
    A -->> U: Respuesta sincrónica (Línea punteada con flecha)
    A -x B: Llamada asincrónica (Con cruz)
    A -) B: Llamada asincrónica (Flecha abierta)

    %% Activación de barras de estado
    A ->>+ B: Procesar (+)
    Note over B: Trabajo interno...
    B -->>- A: Finalizado (-)

    %% Bloques de Control
    alt Caso Éxito
        B -->> U: 200 OK
    else Caso Error
        B -->> U: 500 Error
    end

    opt Paso Opcional
        A ->> B: Log evento
    end

    loop Cada 5 segundos
        A ->> B: Polling
    end

    par Tareas Paralelas
        A ->> B: Tarea 1
    and
        A ->> B: Tarea 2
    end

3. Diagramas de Clases (classDiagram)

classDiagram
    %% Definición de la clase Usuario
    class Usuario {
        +String nombre
        -String password
        #Boolean esAdmin
        +autenticar(pass) Boolean
        +metodoEstatico()$
        +metodoAbstracto()*
    }

    %% Definición de interfaz con comillas dobles
    class Autenticable {
        <<"interface">>
        +login()*
    }

    %% Relaciones entre clases
    Padre <|-- Hijo
    Cliente *-- Pedido
    Empresa o-- Empleado
    Servicio --> BD
    Controlador ..> Modelo
    Clase ..|> Autenticable

  

classDiagram
    %% Definición de la clase Usuario
    class Usuario {
        +String nombre
        -String password
        #Boolean esAdmin
        +autenticar(pass) Boolean
        +metodoEstatico()$
        +metodoAbstracto()*
    }

    %% Definición de interfaz con comillas dobles
    class Autenticable {
        <<"interface">>
        +login()*
    }

    %% Relaciones entre clases
    Padre <|-- Hijo
    Cliente *-- Pedido
    Empresa o-- Empleado
    Servicio --> BD
    Controlador ..> Modelo
    Clase ..|> Autenticable

4. Diagramas Entidad-Relación (erDiagram)

erDiagram
    %% Entidades y Atributos
    USUARIO {
        int id PK
        string email
        string password_hash
    }
    PEDIDO {
        int id PK
        int usuario_id FK
        decimal total
    }

    %% Sintaxis de Cardinalidades:
    %% ||--|| (1 a 1 exacto)      ||--o| (1 a 0 o 1)
    %% ||--|{ (1 a 1 o más)       ||--o{ (1 a 0 o más)
    %% }o--o{ (Muchos a Muchos)

    USUARIO ||--o{ PEDIDO : "realiza"

  

erDiagram
    %% Entidades y Atributos
    USUARIO {
        int id PK
        string email
        string password_hash
    }
    PEDIDO {
        int id PK
        int usuario_id FK
        decimal total
    }

    %% Sintaxis de Cardinalidades:
    %% ||--|| (1 a 1 exacto)      ||--o| (1 a 0 o 1)
    %% ||--|{ (1 a 1 o más)       ||--o{ (1 a 0 o más)
    %% }o--o{ (Muchos a Muchos)

    USUARIO ||--o{ PEDIDO : "realiza"

5. Gitgraph (gitGraph) y Gantt (gantt)

Control de Versiones Git

gitGraph
    commit id: "v1.0" tag: "v1.0"
    branch feature
    checkout feature
    commit id: "Commit en feature" type: HIGHLIGHT
    checkout main
    merge feature id: "Merge a Main"
    commit type: REVERSE id: "Fix / Revert"


gitGraph
    commit id: "v1.0" tag: "v1.0"
    branch feature
    checkout feature
    commit id: "Commit en feature" type: HIGHLIGHT
    checkout main
    merge feature id: "Merge a Main"
    commit type: REVERSE id: "Fix / Revert"

Cronograma de Gantt

gantt
    title Plan de Proyecto
    dateFormat YYYY-MM-DD
    axisFormat %b %d

    section Fase 1
        Análisis            :done, t1, 2026-01-01, 5d
        Aprobación          :milestone, hito1, after t1, 0d

    section Fase 2
        Desarrollo Core     :crit, active, t2, after hito1, 10d
        Pruebas QA          :active, t3, after t2, 5d

  

gantt
    title Plan de Proyecto
    dateFormat YYYY-MM-DD
    axisFormat %b %d

    section Fase 1
        Análisis            :done, t1, 2026-01-01, 5d
        Aprobación          :milestone, hito1, after t1, 0d

    section Fase 2
        Desarrollo Core     :crit, active, t2, after hito1, 10d
        Pruebas QA          :active, t3, after t2, 5d

6. Personalización, Clases y Directiva %%{init}%%

Aplicación de Estilos CSS

flowchart LR
    %% 1. Estilo individual directo
    A[Nodo 1]
    style A fill:#e74c3c,stroke:#c0392b,color:#fff,stroke-width:2px

    %% 2. Definición de clase reutilizable
    classDef exito fill:#2ecc71,color:#fff,font-weight:bold;
    
    %% 3. Asignación de clase
    B[Nodo 2]
    class B exito;
    C[Nodo 3]:::exito
  

flowchart LR
    %% 1. Estilo individual directo
    A[Nodo 1]
    style A fill:#e74c3c,stroke:#c0392b,color:#fff,stroke-width:2px

    %% 2. Definición de clase reutilizable
    classDef exito fill:#2ecc71,color:#fff,font-weight:bold;
    
    %% 3. Asignación de clase
    B[Nodo 2]
    class B exito;
    C[Nodo 3]:::exito

Inyección de Configuración Global

%%{
  init: {
    'theme': 'dark',
    'themeVariables': {
      'fontFamily': 'Fira Code, monospace',
      'primaryColor': '#1e293b',
      'primaryTextColor': '#38bdf8',
      'lineColor': '#f43f5e'
    }
  }
}%%
flowchart LR
    A[Inicio] --> B[Fin]

  

%%{
  init: {
    'theme': 'dark',
    'themeVariables': {
      'fontFamily': 'Fira Code, monospace',
      'primaryColor': '#1e293b',
      'primaryTextColor': '#38bdf8',
      'lineColor': '#f43f5e'
    }
  }
}%%
flowchart LR
    A[Inicio] --> B[Fin]


Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux