marchelbling / diagram

CLI app to convert ASCII arts into hand drawn diagrams.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Diagram

Build Status GoDoc

Diagram is a CLI tool to generate hand drawn diagrams from ASCII arts.

It's a full featured CLI application which converts the ASCII text into hand drawn diagrams. The CLI part is based on gocui and the ascii to png conversion is done using the gg library.

screencast

Installation

In order to run the application please make sure that Go is installed on your local machine and check if $GOPATH/bin is included into the PATH directory.

$ export GOPATH="$HOME/go"
$ export PATH="$PATH:$GOPATH/bin"

In order to visualize the generated output (with CTRL-d) please make sure that glfw is installed on your machine.

A shell script is bundled into the library to mitigate the generation of binary files for the most widespread operating systems, but take care: different dependencies are needed for different operating systems. To build the executables type:

$ make all

For a full list of the required external dependencies check the official documentation of go-glfw (https://github.com/go-gl/glfw/blob/master/README.md).

$ go get github.com/esimov/diagram
$ go install

# Start the application
$ diagram

Usage

Once you are inside the terminal application you can create, edit or delete the ascii diagrams. By pressing CTRL+d you can convert the ASCII art into a handwritten diagram. The PNG file will be saved into the output folder relative to the current path.

A shell script is included to watch the output folder and automatically open the generated image files.

Update:

This is not needed anymore, since an internal image viewer is bundled into the application.

Command Line support

The application also supports the generation of hand drawn diagrams directly from command line without to enter into the CLI application.

$ diagram --help will show the currently supported options:

┌┬┐┬┌─┐┌─┐┬─┐┌─┐┌┬┐
 │││├─┤│ ┬├┬┘├─┤│││
─┴┘┴┴ ┴└─┘┴└─┴ ┴┴ ┴
    Version: 1.0.4

CLI app to convert ASCII arts into hand drawn diagrams.

  -font string
    	Path to the font file (default "/Users/esimov/Projects/Go/src/github.com/esimov/diagram/font/gloriahallelujah.ttf")
  -in string
    	Source
  -out string
    	Destination
  -preview
    	Show the preview window (default true)

CLI Examples

Read input from sample.txt and write image to sample.png showing a preview window with the hand drawn diagram:

diagram -in sample.txt -out sample.png

Read input from sample.txt and write image to sample.png, and exit immediately without showing a preview window:

diagram -in sample.txt -out sample.png -preview=false

Generate diagram as above but use a font at a different location:

diagram -in sample.txt -out sample.png -preview=false -font /path/to/my/font/MyHandwriting.ttf

Key bindings

Key Description
Tab Next Panel
Shift+Tab Previous Panel
Ctrl+s Open Save Diagram Modal
Ctrl+s Save Diagram
Ctrl+d Convert Ascii to PNG
Ctrl+x Clear the editor content
Ctrl+z Restore the editor content
PageUp Jump to the top
PageDown Jump to the bottom
Home Jump to the line start
End Jump to the line end
Delete/Backspace Delete diagram
Ctrl+c Quit

Example

Input Output

The app was tested on Ubuntu and MacOS.

Acknowledgements

The ascii to png conversion was ported from shaky.dart.

Author

License

Copyright © 2017 Endre Simo

This project is under the MIT License. See the LICENSE file for the full license text.

About

CLI app to convert ASCII arts into hand drawn diagrams.

License:MIT License


Languages

Language:Go 96.3%Language:Shell 3.4%Language:Makefile 0.3%