/examplelab.png

Creando diagramas desde texto plano

author:Hugo Ruscitti
fecha:Agosto 2010

En este artículo veremos una forma alternativa de crear diagramas sencillos usando archivos de texto plano.

También veremos cómo configurar el editor de textos VIM para que podamos dibujar diagramas directamente desde el editor.

Este artículo es útil para programadores y equipos de documentación, donde se trabaja principalmente con texto y se necesita representar ideas o conceptos usando gráficos.

¿Que es ditaa?

Ditta es una utilidad de linea de comandos que te permite crear imágenes de diagramas a partir de texto plano.

Esto te facilita mucho la creación de diagramas simples, por ejemplo en sistemas de wiki, documentación en texto plano o directamente en comentarios de tu código fuente.

Un diagrama de ditaa se ve de la siguientes manera:

                 +--------------+
Text file  ----->|              |
                 +--------------+

y que luego de la conversión se verá así:

simple.png

Invocando al comando ditaa, un ejemplo

Para comenzar utilicemos el ejemplo mas sencillo, un archivo de texto llamado caja.ditaa con el siguiente contenido:

+------+
|      |
+------+

Ahora, para generar el gráfico podemos usar el comando:

ditaa caja.ditaa

y se generará el archivo caja.png correspondiente a nuestro diagrama.

Sintáxis

Veamos alguno de los componentes que se pueden dibujar con ditaa.

Formas

Las formas mas comunes de podemos utilizar son las cajas, ya sea con esquinas rectas o redondeadas:

+------+
|      |
+------+

/------\
|      |
\------/
box.png

Atributos y tags

También se pueden crear otras figuras frecuentes en los diagramas de sistemas, la única diferencia aquí es que se debe especificar la figura entre llaves { }:

+-----+
| {s} |
+-----+

+------+
| {io} |
+------+

+------+
| {d}  |
+------+
tags.png

Colores

Se tiene que incluir una nota dentro de la figura.

Hay varios colores predeterminados como cRed e incluso personalizados como c1AB donde los últimos 3 caracteres son las componentes rojo, verde y azúl en hexadecimal.

Veamos un ejemplo:

+------------------+
|      ¡Hola!      |
+------------------+

+------------------+
| cRED ¡Hola!      |
+------------------+

+------------------+
| c1AB ¡Hola!      |
+------------------+

y el resultado de convertirlo con ditaa mensajes.txt es:

mensajes.png

Flechas

Las fechas se generan principalmente usando guiones y paréntesis angulares.

-->

<--

|
V

^
|
flechas.png

Aunque también puedes hacer que las lineas sean punteadas agregando el caracter = en las lineas horizontales y : en las verticales:

a -=---> b

    c

    :
    |
    +--> d
flechas_punteadas.png

Marcas especiales

También podemos señalizar puntos de control mediante asteriscos. Útiles para señalar conexiones entre cajas y lineas.

+---*----+
|        |
+-----*--+
      |
<-*---*
marks.png

Figuras personalizadas

ditaa logra interpretar las figuras que le presentemos, y por defecto intenta separarlas en cajas individuales.

Permitiendo dibujar tablas o incluso vectores:

+-----+
|  A  |
+-----+
|  B  |
+-----+
|  C  |
+-----+
free.png

Drawit, dibujando diagramas desde VIM

Para simplificar las creación de estos diagramas podemos usar un complemento para el editor de textos VIM.

El complemento en cuestión se llama drawit, y se puede descargar desde la siguiente web:

o directamente desde el sitio de plugins de vim.org:

Una vez que has descargado el archivo DrawIt.vba, tienes que abrirlo con vim y luego ejecutar el comando :source %.

Los archivos vba son archivadores de complementos para vim.

Comandos básicos

Una vez que has instalado el complemento tu editor de textos tendrá un nuevo modo de dibujado. Para entrar y salir de este modo tienes que usar los comandos:

  • di Para iniciar el modo de dibujado.
  • ds Para terminar el modo de dibujado.

Una vez que inicias el modo de dibujado puedes usar los direccionales del teclado para dibujar lineas. Y si quieres moverte por el documento pero sin dibujar puedes usar las teclas hjlk habituales.

Esto facilita mucho la creación de diagramas un poco mas complejos, como el siguiente:

uml_en_vim.png

que genera la siguiente imagen:

uml.png

Dibujando con bloques

Para crear bloques se puede usar directamente el mouse, seleccionar un bloque y luego pulsar el comando \b.

Algo similar se puede hacer con elipses, solo use e luego de seleccionar una región.

Si no quieres usar el mouse, el modo de selección de bloques en VIM se puede activar con las teclas ctrl + v.

Conclusión

Ditaa es una herramienta útil a tener en cuenta cuando explicamos ideas en archivos de texto. Un escenario habitual para programadores y administradores de sistemas.