Skip to content

Shinmera/text-draw

Repository files navigation

## About Text-Drawing
This library implements some functions to draw graphics using pure Unicode text only. The intention is to allow you to create more meaningful debugging output in things like ``describe`` or documentation.

## How To
You can print things with the ``style``, ``fill``, ``table``, ``tree``, ``node``, ``box``, ``align``, ``progress``, ``check``, ``radio``, and ``line`` functions. Once you have something drawn, you can transform that with ``pad``, ``translate``, ``composite``, ``rows``, and ``compose``.

:: common lisp
(compose T
  (0 0 (fill 40 15 :background :gray))
  (1 1 (box (rows (check T :label "Implement")
                  (check T :label "Document")
                  (check NIL :label "Publish"))
            :align :left))
  (25 7 (box "New library!"))
  (14 4 (line 11 5 :start :circle :end T))
  (2 11 (box "The Shinmera Process" :width 36 :background :black)))

▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒┌───────────┐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒│☑▒Implement│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒│☑▒Document │▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒│☐▒Publish  │○────╮▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒└───────────┘▒▒▒▒▒│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│▒▒▒▒▒┌────────────┐▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒╰────⭢│New▒library!│▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒└────────────┘▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒▒▗▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▖▒▒
▒▒▐███████The▒Shinmera▒Process███████▌▒▒
▒▒▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
::