Generate images from Graphviz dot strings using Viz.js in both Clojure and Clojurescript.
[viz-cljc "0.1.3"]This library provides one interface viz.core/image for both Clojure and
Clojurescript. For Clojure, the dependency on the Graphviz dot binary is
not necessary (as it is with other libraries). For Clojurescript, this
library eliminates the need to separately include Viz.js.
Everything in this library is self contained, as it includes and uses Viz.js. This also ensures complete consistency (formatting nuances, etc) between Clojure and Clojurescript.
(require '[viz.core :as viz])
(viz/image "digraph { FOO -> BAR; }")The image function returns an SVG string.
<svg width="70pt" height="116pt" viewBox="0.00 0.00 69.78 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<title>%0</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-112 65.7766,-112 65.7766,4 -4,4"></polygon>
<!-- FOO -->
<g id="node1" class="node">
<title>FOO</title>
<ellipse fill="none" stroke="#000000" cx="30.8883" cy="-90" rx="30.1958" ry="18"></ellipse>
<text text-anchor="middle" x="30.8883" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">FOO</text>
</g>
...From cljs, you can use the SVG result to set the .-innerHTML of a DOM
element, or from clj, spit the result out to a SVG file.
Right now, only SVG is supported. Add other image formats.