Lsgv: List Style Graphviz
- Support Cluster
- Parser Preprocessing
- Secondary Parser Symbol
- Customize Global Style
(-> a b)
(-> (a b) c)
(-> a (b c (e f) d))
;; define style
($ red-style :color red)
;; use style
(+@ :type red-style a b)
Different style for the data:
lsgv green-style.lsgvs diff-style-demo.lsgv
lsgv red-style.lsgvs diff-style-demo.lsgv
(+@ :type my-node :color #x330099
a b c d e)
The node can calculate the color dynamically:
(+@ :type rainbow
h i j)
The color of line can be calculated dynamically:
(-> :relation parent
h (i j k l))
(+@ :type core
core)
(+@ :type simple-core
core)
lsgv drop-color.lsgvs project-demo.lsgv
(instruction :key1 :value1 :key2 :value2
data1 data2)
!
: Settings:rankdir
: graphviz rankdir:layout
: graphviz layout:sep
: graphviz sep:splines
: graphviz splines:rainbow-color
: initial rainbow color:rainbow-count
: how many rainbow color
$
: Style+@
: Node:color
: graphviz color:fontcolor
: graphviz fontcolor:style
: graphviz style:shape
: graphviz shape:type
: style:fontcolor-ratio
: the ratio of fontcolor:filled-color-ratio
: the ratio of filled color:color-ratio
: the ratio of color:fontcolor-offset
: the offset of fontcolor:filled-color-ratio
: the offset of filled color:fix-fontcolor-blue-offset
:the offset of blue:color-ratio
: the offset of color:override
: the method of color override
=@
: Rank->
: Line:style
: graphviz style:arrowhead
: graphviz arrowhead:arrowtail
: graphviz arrowtail:penwidth
: graphviz penwidth:label
: graphviz label:color
: graphviz color:type
: style:relation
: dynamic calculate color
- Scheme Implementation (R7RS/R6RS)
- Graphviz
The scheme implementation I use:
- Chez(R6RS)
- Cyclone(R7RS)
# chez
scheme --script lsgv.scm $file
# cyclone
cyclone lsgv-with-r7rs.scm
lsgv-with-r7rs $file