GraphXQ

A web interface for Graphviz. Graph descriptions can be entered in the Dot or DotML languages and the corresponding SVG viewed or downloaded. A REST interface enables the SVG generation to be used as a service.

Client

The client side targets modern browsers with SVG support. It was tested against Firefox 46 and Chrome 50.

Twitter Bootstrap is used for the client side styling. The Ace editor is used to provide rich editing functionality.

Javascript libraries are loaded from CDN where possible. In particular cdnjs.com is used.

The resultant SVG is viewed in an interface that provides pan and zoom functionality. The SVG may also be viewed standalone or downloaded.

Server

The server side is written in XQuery. It uses the BaseX implementation. RestXQ is used to map XQuery annotations to web server behavior.

The graphviz dot executable is used to generate SVG from the DOT source.

This application includes an XSLT transform to convert DotML to dot developed by Martin Loetzsch. DotML is a XML based syntax for the input language of the 'Dot'.

Todo

The SVG pan and zoom has problems, especially in Firefox. In part this maybe due to firefox bugs

For reference how the SVG viewbox works. See also here for a better way?


Fork me on GitHub