Graphviz and ascii output

AsciiGraphviz

Ascii Problem Overview


Is it possible to draw ASCII diagram using Graphviz?

Something like that:

digraph
{
  this -> is
  this -> a
  a -> test
}

Gives undesired result.

Instead, I would like to get similar ASCII representation:

   this
  /    \
is      a
        |
       test

How to draw ascii diagrams from dot-files format?

Ascii Solutions


Solution 1 - Ascii

If you are not perl averse, graph-easy (and the associated Graph::Easy package) can do exactly that:

http://search.cpan.org/~tels/Graph-Easy/

http://search.cpan.org/~tels/Graph-Easy/bin/graph-easy

On Mac you can install this with Homebrew and cpan:

brew install cpanminus
cpan Graph::Easy

It's easy to invoke after installation:

cat dotfile.dot   | /opt/local/libexec/perl5.12/sitebin/graph-easy

Solution 2 - Ascii

Here is equivalent commands for linux:

First install cpanminus

sudo apt install cpanminus

After you can install GraphEasy

sudo cpanm Graph::Easy

Here is a sample usage

cat input.dot | graph-easy --from=dot --as_ascii

Solution 3 - Ascii

Using graph-easy via docker. You can install whalebrew and use it to run graph-easy without installing too much dependancies on your local machine other than whalebrew and docker.

on MacOS with homebrew install docker

$ brew install docker
$ docker -v      # check if docker is running

Install whalebrew - https://github.com/whalebrew/whalebrew (check installation alternatives)

$ brew install whalebrew

Install graph-easy via whalebrew

$ whalebrew install tsub/graph-easy

Now run it via

$ echo '[a]->[b]' | graph-easy

+---+     +---+
| a | --> | b |
+---+     +---+

Solution 4 - Ascii

By now, in ubuntu, you can install and use graph-easy directly:

> sudo apt install libgraph-easy-perl
[...]

> graph-easy dotfile.dot 
+----+     +------+
| is | <-- | this |
+----+     +------+
             |
             |
             v
           +------+
           |  a   |
           +------+
             |
             |
             v
           +------+
           | test |
           +------+

Solution 5 - Ascii

Another option to use Graph::Easy's ASCII functionality is directly from your browser through this small service that I hosted:

https://dot-to-ascii.ggerganov.com

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser360872View Question on Stackoverflow
Solution 1 - AsciispenthilView Answer on Stackoverflow
Solution 2 - AsciiCpp ForeverView Answer on Stackoverflow
Solution 3 - AsciimirageglobeView Answer on Stackoverflow
Solution 4 - AsciiChristian FritzView Answer on Stackoverflow
Solution 5 - AsciiGeorgi GerganovView Answer on Stackoverflow