Guía de Mermaid.js: Crea diagramas con texto (flujogramas, diagramas de secuencia y diagramas de Gantt)

目次

1. ¿Qué es Mermaid?

Visión general y características clave de Mermaid

Mermaid es una biblioteca JavaScript que permite crear diagramas y gráficos mediante definiciones basadas en texto. Con esta herramienta, puedes generar diagramas visuales fácilmente solo escribiendo código. Debido a que permite crear rápidamente diagramas de flujo, diagramas de secuencia, diagramas de Gantt y más, es ampliamente utilizada por desarrolladores de software, gestores de proyectos y muchos otros.

Una de las mayores fortalezas de Mermaid es que puedes definir los diagramas usando únicamente código. Esto facilita la edición y gestión de los diagramas sin depender de una interfaz gráfica. Mermaid también está integrada en plataformas como GitHub y Notion, lo que le brinda la flexibilidad de usarse en muchas situaciones diferentes.

Principales casos de uso y beneficios de Mermaid

Casos de uso

  • Creación de diagramas de flujo y diagramas de secuencia para desarrollo de software.
  • Creación de diagramas de Gantt para planificación de proyectos.
  • Añadir representaciones visuales a archivos Markdown y documentación Wiki.

Beneficios

  • Sintaxis simple: Puedes escribirlo como código de programación, por lo que incluso los principiantes pueden usarlo fácilmente.
  • Gestión basada en código: Puedes gestionar versiones usando herramientas de control de código fuente (p. ej., Git).
  • Creación y actualización rápidas: Los cambios en el diagrama se reflejan inmediatamente solo editando el código.
  • Extensibilidad y personalización: Puedes personalizar el diseño con CSS y ampliar la funcionalidad con JavaScript.

2. Uso básico de Mermaid

Cómo instalar

Mermaid.js se puede instalar de dos maneras: usando un enlace CDN o mediante npm.

1. Usando un enlace CDN

Añade la siguiente etiqueta <script> a tu archivo HTML.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
    mermaid.initialize({ startOnLoad: true });
  </script>
</head>
<body>
  <div class="mermaid">
    graph TD;
      A-->B;
      A-->C;
      B-->D;
      C-->D;
  </div>
</body>
</html>

2. Usando npm

Si ya tienes un entorno Node.js preparado, puedes instalarlo con el siguiente comando.

npm install mermaid

Con este método, puedes integrar Mermaid como parte de un proyecto JavaScript.

Sintaxis y gramática básicas

Con Mermaid.js, puedes crear diagramas usando una sintaxis textual intuitiva. Aquí tienes algunos ejemplos comunes.

1. Diagrama de flujo

A continuación se muestra un ejemplo de definición de un diagrama de flujo.

graph TD;
  A[Start] --> B[Process 1]
  B --> C[Process 2]
  C --> D[End]

2. Diagrama de secuencia

Un diagrama de secuencia que muestra el flujo de trabajo de un sistema puede escribirse así.

sequenceDiagram
  participant A as User
  participant B as Server
  A->>B: Send request
  B-->>A: Return response

3. Diagrama de Gantt

Un diagrama de Gantt útil para la gestión de proyectos puede escribirse de la siguiente manera.

gantt
  title Project Plan
  dateFormat YYYY-MM-DD
  section Planning
  Task A :a1, 2024-01-01, 10d
  Task B :a2, after a1, 7d
  Task C :a3, after a2, 5d

Tipos de diagramas compatibles

Mermaid.js admite los siguientes tipos de diagramas y gráficos.

  • Diagrama de flujo: Muestra el flujo de un proceso.
  • Diagrama de secuencia: Visualiza protocolos de comunicación y procedimientos.
  • Diagrama de Gantt: Se usa para la gestión y programación de proyectos.
  • Diagrama de clases: Se utiliza para el diseño orientado a objetos.
  • Diagrama de estados: Representa transiciones de estado.
  • Gráfico de pastel: Visualiza proporciones de datos.

3. Creación de diagramas con Mermaid.js

Cómo incrustar Mermaid en HTML

Mermaid.js se puede incrustar fácilmente en HTML. Sigue los pasos a continuación para crear diagramas.

1. Estructura HTML básica

El siguiente código muestra un ejemplo mínimo de uso de Mermaid.js en un archivo HTML.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Mermaid Diagram</title>
  <script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
    mermaid.initialize({ startOnLoad: true });
  </script>
</head>
<body>
  <h1>Flowchart Example</h1>
  <div class="mermaid">
    graph TD;
      A[Start] --> B[Process 1]
      B --> C[Process 2]
      C --> D[End]
  </div>
</body>
</html>

2. Mostrar varios diagramas

Si deseas mostrar varios diagramas, agrega múltiples etiquetas div en tu HTML de la siguiente manera.

<div class="mermaid">
  graph TD;
    A --> B;
    B --> C;
</div>
<div class="mermaid">
  sequenceDiagram
    participant A as User
    participant B as Server
    A->>B: Send request
    B-->>A: Return response
</div>

Inicialización y configuración con JavaScript

1. Configuración de inicialización

El siguiente código inicializa Mermaid.js de forma programática.

mermaid.initialize({
  startOnLoad: true,
  theme: 'forest',
  flowchart: { curve: 'basis' },
});

Con esta configuración, el tema se cambia a forest, y las líneas del diagrama de flujo se personalizan para usar bordes curvos.

2. Añadir diagramas dinámicamente

El siguiente ejemplo muestra cómo generar un diagrama dinámicamente usando JavaScript.

const code = `
graph LR;
  X[Start] --> Y[Next step];
  Y --> Z[End];
`;
const element = document.querySelector('#dynamicChart');
element.innerHTML = code;
mermaid.init(undefined, element);

Ejemplos prácticos de código y explicaciones

Ejemplo 1: Crear un diagrama de secuencia

<div class="mermaid">
  sequenceDiagram
    participant User as User
    participant Server as Server
    User->>Server: Data request
    Server-->>User: Data response
</div>

Ejemplo 2: Crear un diagrama de Gantt

<div class="mermaid">
  gantt
    title Project Schedule
    dateFormat YYYY-MM-DD
    section Development Phase
      Design :done, 2024-01-01, 2024-01-07
      Implementation :active, 2024-01-08, 2024-01-20
      Testing :2024-01-21, 2024-01-30
</div>

4. Cómo usar Mermaid en WordPress

Introducción y configuración del plugin

Si deseas usar Mermaid.js en WordPress, la forma más sencilla es instalar un plugin dedicado. Aquí tienes algunas opciones populares.

1. Plugin Mermaid – “Resaltado de sintaxis Mermaid Markdown”

Este plugin te permite usar la sintaxis de Mermaid directamente dentro de tus publicaciones.

Pasos de instalación

  1. Inicia sesión en el panel de administración de WordPress.
  2. En el menú, haz clic en PluginsAñadir nuevo.
  3. En el cuadro de búsqueda, escribe Mermaid Markdown Syntax Highlighting.
  4. Instala el plugin y actívalo.

Pasos de configuración

  1. Después de la activación, puedes ajustar las opciones básicas desde la pantalla de ajustes.
  2. Personaliza ajustes como el tema y la carga automática al iniciar.

Cómo mostrar diagramas en una publicación

Después de instalar el plugin, puedes mostrar diagramas dentro de tu publicación usando shortcodes como los siguientes.

Ejemplo: Insertar un diagrama de flujo

[mermaid]
graph TD;
  A[Start] --> B[Process 1]
  B --> C[Process 2]
  C --> D[End]
[/mermaid]

Ejemplo: Insertar un diagrama de secuencia

[mermaid]
sequenceDiagram
  participant User
  participant Server
  User->>Server: Send request
  Server-->>User: Return response
[/mermaid]

Ejemplo: Insertar un diagrama de Gantt

[mermaid]
gantt
  title Project Plan
  dateFormat YYYY-MM-DD
  section Development
    Design :done, 2024-01-01, 2024-01-07
    Implementation :active, 2024-01-08, 2024-01-20
    Testing :2024-01-21, 2024-01-30
[/mermaid]

Notas y solución de problemas

1. Qué hacer si los diagramas no se renderizan

  • Causa 1: El plugin no está activado correctamente. → Vuelve a comprobar la configuración del plugin y asegúrate de que está habilitado.
  • Causa 2: El script de Mermaid.js no se está cargando. → Puede estar en conflicto con tu tema u otros plugins, así que desactiva los plugins uno a uno para identificar el conflicto.

2. Configuración manual sin plugin

Si no deseas usar un plugin, también puedes incrustar Mermaid.js manualmente añadiendo el siguiente código al functions.php de tu tema.

function add_mermaid_script() {
    echo '<script type="module">
        import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs";
        mermaid.initialize({ startOnLoad: true });
    </script>';
}
add_action('wp_footer', 'add_mermaid_script');

5. Buenas prácticas para usar Mermaid

Cómo gestionar diagramas complejos

1. Dividir y organizar tu código

Al crear diagramas complejos, mantén tu código organizado siguiendo estos consejos.

  • Añade comentarios para cada sección
    %% Start of the flowchart
    graph TD;
        A[Start] --> B[Process 1]
    %% Branching logic
        B --> C[Process 2]
        B --> D[Process 3]
    
  • Crea plantillas y reutilízalas Para proyectos grandes, preparar plantillas y mantener la consistencia entre varios diagramas es importante.

2. Gestionar diagramas en archivos externos

En lugar de incrustar el código de Mermaid directamente en un archivo HTML o Markdown, puedes almacenarlo en archivos externos. Esto mejora la mantenibilidad.

Ejemplo: guarda el código de Mermaid en un archivo llamado diagram.mmd y cárgalo desde HTML.

<div id="diagram-container"></div>
<script>
  fetch('diagram.mmd')
    .then(response => response.text())
    .then((text) => {
      const container = document.getElementById('diagram-container');
      container.innerHTML = text;
      mermaid.init(undefined, container);
    });
</script>

Personalización y configuración de temas

1. Aplicar un tema

Mermaid.js incluye varios temas incorporados, lo que te permite cambiar a un estilo visualmente atractivo con facilidad.

Lista de temas

  • Predeterminado
  • Oscuro
  • Bosque
  • Neón

Ejemplo de configuración

mermaid.initialize({
  theme: 'dark',
});

2. Aplicar CSS personalizado

Si deseas ajustes de diseño más detallados, puedes definir estilos con CSS.

.mermaid text {
  font-family: Arial, sans-serif;
  fill: #333;
}

Consideraciones de rendimiento

1. Ajustar el momento de inicialización

En lugar de inicializar los diagramas al cargar la página, puedes iniciar Mermaid solo cuando los usuarios lo necesiten. Esto reduce la carga de procesamiento.

const config = {
  startOnLoad: false,
};

mermaid.initialize(config);

// Render only when needed
document.getElementById('render-btn').addEventListener('click', () => {
  mermaid.init();
});

2. Convertir a imágenes estáticas

Si el rendimiento es especialmente importante, puedes exportar los diagramas generados por Mermaid como archivos de imagen y utilizarlos como imágenes estáticas. Esto minimiza la carga en el navegador.

6. Resumen

El valor y la conveniencia de Mermaid.js

Mermaid.js es una potente biblioteca JavaScript que permite crear diagramas mediante definiciones basadas en código. Dado que puede renderizar fácilmente muchos tipos de diagramas —como diagramas de flujo, diagramas de secuencia y diagramas de Gantt—, es una herramienta extremadamente útil para desarrolladores y gestores de proyectos.

Una de las mayores ventajas de esta biblioteca es que su sintaxis sencilla permite crear diagramas complejos de manera eficiente. Además, puede integrarse con plataformas CMS como WordPress, lo que la convierte en una excelente forma de presentar información visual en entradas de blog y documentación técnica.

Repaso de cada sección

  1. Qué es Mermaid Explicamos la visión general básica de Mermaid.js, sus casos de uso y los beneficios de adoptarlo.
  2. Uso básico de Mermaid Introdujimos los fundamentos para el uso práctico, desde los métodos de instalación hasta la sintaxis básica.
  3. Creación de diagramas con Mermaid.js Proporcionamos instrucciones detalladas sobre cómo crear diagramas usando HTML y JavaScript.
  4. Cómo usar Mermaid en WordPress Cubrimos cómo integrar Mermaid con WordPress, incluido el uso de plugins y ejemplos reales dentro de las publicaciones.
  5. Buenas prácticas para usar Mermaid Ofrecimos consejos prácticos sobre gestión de código, optimización del rendimiento y personalización del diseño.

Posibilidades futuras para Mermaid.js

Mermaid.js es un proyecto de código abierto, y puede seguir añadiendo nuevas funcionalidades y formatos compatibles en el futuro. También cuenta con un soporte cada vez mayor en muchas plataformas como GitHub, Notion y WordPress, por lo que se espera que sus casos de uso potenciales se expandan aún más.

Dado que puede aplicarse a muchos propósitos —como documentos empresariales, presentaciones y la mejora de herramientas de gestión de proyectos— seguir aprendiendo y practicando Mermaid.js te ayudará a usarlo de manera aún más eficaz.

Notas finales

En este artículo, cubrimos Mermaid.js desde los conceptos básicos hasta su uso práctico. Dado que es amigable para principiantes y también útil para documentación profesional, asegúrate de probarlo.

Cuando lo necesites, vuelve a consultar esta guía y comienza a integrar Mermaid.js en tus proyectos reales y en la redacción técnica.

広告