Skip to content

bep/goat

 
 

Repository files navigation

GoAT: Go ASCII Tool

This is a Go implementation of markdeep.mini.js's ASCII diagram generation.

TODO

  • Dashed lines signaled by : or =.
  • Bold lines signaled by ???.

Examples

Here are some SVGs and the ASCII input they were generated from:

Trees

Trees Example

 . . . .--- 1 .-- 1 / 1 / \ | | .---+ .-+ + / \ .---+---. .--+--. | '--- 2 | '-- 2 / \ 2 + + | | | | ---+ ---+ + / \ / \ .-+-. .-+-. .+. .+. | .--- 3 | .-- 3 \ / 3 / \ / \ | | | | | | | | '---+ '-+ + 1 2 3 4 1 2 3 4 1 2 3 4 '--- 4 '-- 4 \ 4 

Overlaps

Overlaps Example

 .-. .-. .-. .-. .-. .-. | | | | | | | | | | | | .---------. .--+---+--. .--+---+--. .--| |--. .--+ +--. .------|--. | | | | | | | | | | | | | | | | | | '---------' '--+---+--' '--+---+--' '--| |--' '--+ +--' '--|------' | | | | | | | | | | | | '-' '-' '-' '-' '-' '-' 

Line Decorations

Line Decorations Example

 ________ o * * .--------------. *---+--. | | o o | ^ \ / | .----------. | | | '--* -+- | | v / \ / | | <------. | | | '-----> .---(---' --->*<--- / .+->*<--o----' | | | | | <--' ^ ^ | | | | | ^ \ | '--------' | | \/ *-----' o |<----->| '-----' |__| v '------------' | /\ *---------------' 

Line Ends

Line Ends Example

 o--o *--o / / * o o o o o * * * * o o o o * * * * o o o o * * * * o--* *--* v v ^ ^ | | | | | | | | \ \ \ \ \ \ \ \ / / / / / / / / o--> *--> * o / / o * v ' o * v ' o * v \ o * v \ o * v / o * v / o--- *--- ^ ^ ^ ^ . . . . ^ ^ ^ ^ \ \ \ \ ^ ^ ^ ^ / / / / | | * o \ \ * o | | | | | | | | \ \ \ \ \ \ \ \ / / / / / / / / v v ^ ^ v v ^ ^ o * v ' o * v ' o * v \ o * v \ o * v / o * v / * o | | * o \ \ <--o <--* <--> <--- ---o ---* ---> ---- *<-- o<-- -->o -->* 

Dot Grids

Dot Grids Example

 o o o o o * * * * * * * o o * o o o * * * o o o · * · · · · · · o o o o o * * * * * o o o o * o o o o * * * * * o * * · * * · · · · · · o o o o o * * * * * o * o o o o o o o o * * * * * o o o o o · o · · o · · * * · o o o o o * * * * * o * o o o o o o o * * * * o * o o · · · · o · · * · o o o o o * * * * * * * * * o o o o * * * o * o · · · · · · · * 

Large Nodes

Large Node Example

 .---. .-. .-. .-. .-. | A +----->| 1 +<---->| 2 |<----+ 4 +------------------. | 8 | '---' '-' '+' '-' | '-' | ^ | ^ v | v | .-. .-+-. .-. .-+-. .-. .+. .---. | 3 +---->| B |<----->| 5 +---->| C +---->| 6 +---->| 7 |<---->| D | '-' '---' '-' '---' '-' '-' '---' 

Small Grids

Small Grids Example

 ___ ___ .---+---+---+---+---. .---+---+---+---. .---. .---. ___/ \___/ \ | | | | | | / \ / \ / \ / \ / | +---+ | / \___/ \___/ +---+---+---+---+---+ +---+---+---+---+ +---+ +---+ \___/ b \___/ \ | | | b | | | \ / \a/ \b/ \ / \ | +---+ | / a \___/ \___/ +---+---+---+---+---+ +---+---+---+---+ +---+ b +---+ \___/ \___/ \ | | a | | | | / \ / \ / \ / \ / | a +---+ | \___/ \___/ '---+---+---+---+---' '---+---+---+---' '---' '---' 

Big Grids

Big Grids Example

 .----. .----. / \ / \ .-----+-----+-----. + +----+ +----. | | | | .-----+-----+-----+-----+ \ / \ / \ | | | | / / / / / +----+ B +----+ + +-----+-----+-----+ +-----+-----+-----+-----+ / \ / \ / | | | | / / / / / + A +----+ +----+ | | B | | +-----+-----+-----+-----+ \ / \ / \ +-----+-----+-----+ / / A / B / / '----+ +----+ + | | | | +-----+-----+-----+-----+ \ / \ / | A | | | / / / / / '----' '----' '-----+-----+-----' '-----+-----+-----+-----+ 

Complicated

Complicated Example

+-------------------+ ^ .---. | A Box |__.--.__ __.--> | .-. | | | | '--' v | * |<--- | | +-------------------+ '-' | | Round *---(-. | .-----------------. .-------. .----------. .-------. | | | | Mixed Rounded | | | / Diagonals \ | | | | | | | & Square Corners | '--. .--' / \ |---+---| '-)-' .--------. '--+------------+-' .--. | '-------+--------' | | | | / Search / | | | | '---. | '-------' | '-+------' |<---------->| | | | v Interior | ^ ' <---' '----' .-----------. ---. .--- v | .------------------. Diag line | .-------. +---. \ / . | | if (a > b) +---. .--->| | | | | Curved line \ / / \ | | obj->fcn() | \ / | '-------' |<--' + / \ | '------------------' '--' '--+--------' .--. .--. | .-. +Done?+-' .---+-----. | ^ |\ | | /| .--+ | | \ / | | | Join \|/ | | Curved | \| |/ | | \ | \ / | | +----> o --o-- '-' Vertical '--' '--' '-- '--' + .---. <--+---+-----' | /|\ | | 3 | v not:line 'quotes' .-' '---' .-. .---+--------. / A || B *bold* | ^ | | | Not a dot | <---+---<-- A dash--is not a line v | '-' '---------+--' / Nor/is this. --- 

More examples are available here.

About

Render ASCII art as SVG diagrams

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Go 100.0%