Skip to content

PiotrJustyna/drakon-renderer

Repository files navigation

drakon-renderer

Reasonably portable drakon-esque diagrams renderer. Development, compilation and execution are intended to take place in containers.

Important:

This is work in progress and, while progress is being made every week, the renderer is not yet guaraneed to render drakon-correct diagrams (we're getting close, though, I feel!). Current focus is to translate the drakon whitepaper into a Haskell-friendly set of types and functions.

Sample diagrams the renderer can produce today:

name input output
primitive diagram 1 Title [ Action Fork [ Action Action Action ] [ Action Action Fork [ Action ] [ Action Action ] ] Action ] End primitive-diagram-1
primitive diagram 2 Title [ Fork [ Action Action ] [ ] ] End primitive-diagram-1
primitive diagram 3 Title [ Fork [ Action Action Action Action ] [ Fork [ Action ] [ Action ] ] ] End primitive-diagram-3

development environment

command description
./start-development-environment.sh starts a fully dockerized development environment
./build.sh builds and lints code - preferrably while development environment docker container is running, otherwise local installation of cabal and hlint is required)
./run.sh runs code - just like the build script, the preferred way to use it is while the development environment is running
./format.sh formats all *.hs files located in the ./app directory using hindent
exit terminates development environment

community

resources