Crear diagramas en ASCII

141

Estoy buscando un programa que pueda usar para crear diagramas ASCII como estos:

    +---------+
    |         |                        +--------------+
    |   NFS   |--+                     |              |
    |         |  |                 +-->|   CacheFS    |
    +---------+  |   +----------+  |   |  /dev/hda5   |
                 |   |          |  |   +--------------+
    +---------+  +-->|          |  |
    |         |      |          |--+
    |   AFS   |----->| FS-Cache |
    |         |      |          |--+
    +---------+  +-->|          |  |
                 |   |          |  |   +--------------+
    +---------+  |   +----------+  |   |              |
    |         |  |                 +-->|  CacheFiles  |
    |  ISOFS  |--+                     |  /var/cache  |
    |         |                        +--------------+
    +---------+

Preferiblemente debería ser un paquete disponible en Debian . El maravilloso diagrama que se muestra arriba está tomado de la documentación del kernel de Linux. No puedo creer que fueron creados a mano. Debe haber alguna herramienta para crearlos.

Martin Vegter
fuente
66
Puede dibujar este tipo de diagramas desde dentro vimutilizando el complemento DrawIt .
dawud
12
"No puedo creer que fueron creados a mano. Debe haber alguna herramienta para crearlos". Puedo creer fácilmente que fueron creados a mano, especialmente si usted estaba, por ejemplo, trabajando desde un boceto u otra fuente para el diagrama. Eso no llevaría más de 5 minutos.
Ricitos
2
Puedo creer fácilmente que fueron creados a mano porque en realidad son bastante fáciles de hacer si usas un poco de sentido común y lo visualizas primero en tu cabeza. Por supuesto, lleva unos minutos más de lo que pasaría con Asciio o algo así.
Miles Rout

Respuestas:

138

asciio

He usado asciio durante varios años. Muchos de los diagramas en este sitio que he creado usando asciio.

ejemplo

  vncviewer         .-,(  ),-.    
   __  _         .-(          )-.           gateway           vncserver 
  [__]|=|  ---->(    internet    )-------> __________ ------> ____   __ 
  /::/|_|        '-(          ).-'        [_...__...°]       |    | |==|
                     '-.( ).-'                               |____| |  |
                                                             /::::/ |__|

La GUI se ve así.

           ss de asciio

NOTA: Todo se maneja desde el menú de clic derecho, así como las teclas de acceso directo.

Dibujalo

Usando vimjunto con el complemento DrawIt también puede crear diagramas básicos. En este artículo titulado: Cómo crear dibujos ASCII en Vim Editor (cuadros de dibujo, líneas, elipses, flechas dentro del archivo de texto), encontrará una buena descripción general sobre cómo instalarlo y usarlo .

asciiflow

Hay un sitio web llamado asciiflow, que es probablemente la forma más fácil de dibujar este tipo de diagramas.

   ss # 2

JavE

Otra herramienta, JavE , escrita en Java que también puede crear diagramas ascii como este.

                                 ,'''''''''''''|
                                 | Controller  |
                                 |             |
                                 '`'i''''''''''
                                  ,'        `.
                                ,'            `.
                               -                -
                     ,'''''''''''''|      ,''''''''''''`.
                     |    Model    |______|    View     |
                     |             |      |             |
                      `''''''''''''       '`'''''''''''''

La GUI se ve así:

   ss # 2

Recursos

slm
fuente
1
Puede agregar diiagrams.com si lo desea
I3ck
El instalador de Windows para asciio desde el enlace ya no funciona. El instalador dice que recibió un error 404 y luego aborta. Acabo de usar asciiflow en su lugar.
Joseph238
1
@ Joseph238: gracias por los comentarios, dado que este es el sitio web de Unix y Linux, no estoy seguro de que a la mayoría de los transeúntes les importe tanto. Si encuentra un enlace, por favor háganoslo saber.
slm
2
Tal vez agregue una nota sobre: textik.com .
Isaac
27

Eche un vistazo al modo artista o al modo imagen para Emacs (consulte también este screencast ). También es posible que desee ver ditaa .

tkrennwa
fuente
1 Re: "ditaa" Así que alguien podría hacer éstos con la mano para que pudieran ser convertidos a un formato gráfico ...
Ricitos de Oro
2
Sí, ditaa es una gran combinación con asciio.
Martijn Heemels
El enlace de screencast está muerto.
jcubic
24

Encontré otra respuesta; No estoy seguro de que sea completamente utilizable, pero recuerde que GNU roff (groff) tiene un procesador para el lenguaje Pic , así como un postprocesador ascii; por lo tanto, puede intentar algo así (si usa Linux, todo probablemente ya debería estar instalado). Escriba un archivo llamado test.roff que contenga:

.PS
box "box1";
line
box "box2";
.PE

Luego escriba:, groff -Tascii -p test.roffy debería obtener:

+------+     +------+
|      +-----|      |
| box1 |     |box2  |
+------+     +------+

Saludos.

Thomas Baruchel
fuente
Es posible que desee eliminar los caracteres de control mediante el usogroff -Tlatin1 -P-c -P-b -P-u
mlt
groffestá preinstalado en Mac OS X :)
Sridhar Sarnobat
15

Tal vez le interesará Graph-Easy .

Ejemplo:

   echo "[ Bonn ] -- car --> [ Berlin ], [ Ulm ]" | graph-easy

produce:

    +--------+  car   +-----+
    |  Bonn  | -----> | Ulm |
    +--------+        +-----+
      |
      | car
      v
    +--------+
    | Berlin |
    +--------+

Puede instalarlo con los siguientes comandos:

wget http://search.cpan.org/CPAN/authors/id/T/TE/TELS/graph/Graph-Easy-0.64.tar.gz
tar -xzf Graph-Easy-0.64.tar.gz
cd Graph-Easy-0.64
perl Makefile.PL
make test
sudo make install
PATH=$PATH:/opt/local/libexec/perl5.12/sitebin/graph-easy

(Tenga en cuenta los números de versión en las dos líneas superiores y la última línea; pueden cambiar)

Algunas capturas de pantalla agradables están disponibles en las páginas de lddot y dothost (porque ambas herramientas son envoltorios graph-easy).

Thomas Baruchel
fuente
1
Parece que la última versión ahora está alojada en Github: github.com/ironcamel/Graph-Easy
Sridhar Sarnobat
1
Supongo que esto funciona mucho como Graphviz, pero Graphviz no tiene salida ASCII, lo cual es una pena.
Sridhar Sarnobat
graph-easy usa el lenguaje DOT, igual que Graphviz
ivarec
-1

Para cualquiera que use una Mac (no el póster original) hay una herramienta muy buena llamada Monodraw . Por supuesto, pagará unos pocos dólares por el hecho de que es altamente pulido, potente e intuitivo, pero si esto es algo que hace a menudo, es una herramienta útil para tener disponible y $ 10 son cacahuetes en comparación con el tiempo que tendrá salvar. Si no haces esto a menudo, hay una versión de prueba gratuita disponible, así que ya estás listo. Incluso puede exportar a SVG

No, no trabajo para la empresa. Solo soy un usuario feliz.

iconoclasta
fuente