gablock - Block Diagram Generator
This simple script takes in a YAML description of a Block Diagram,
and translates it into a directed graph in the GraphViz DOT format.
GraphViz is then called to layout the block diagram and produce the
final image or vector file.
INSTALL:
make setup
make deps
make cpan
install File::Which
USAGE:
gablock example.yaml
OPTIONS:
See gablock --help for details
SUPPORT:
Please use the bug tracker on sourceforge for bugs or support requests
https://sourceforge.net/p/gablock/tickets/
Please also be aware of the GraphViz forum for formatting tweak help
http://www.graphviz.org/Forum
YAML Syntax:
Please see http://www.yaml.org/spec/1.2/spec.html for the YAML format description
Format:
- The input YAML file is a list of hashes (Sequence of maps in YAML terms)
- Each entry can be one of two types : node or edge
- Hash values can sometimes be other hashes or lists
Nodes:
* Nodes have the key "name" in their hash. Keep the name short and easy since you will use it for links
* Use the "label" key to give a description
* "blocks" is a list of sub-blocks inside a node. These are displayed under the label. They
cannot be targets of links.
* "ports" is a list of subblocks or interfaces in a node. These can be targets of links.
Edges:
* Edges have the keys "from" and "to" in their hash. These must match a node name.
* Use the "label" key to give a description
* Specify connections to node ports using the format "node/port"
Attributes:
* Nodes and Edges can specify a map of attributes using the "attrs" key
* Attributes listed here are copied straight to DOT and must be in GraphViz Format
* You can override default styles here supplying new ones or blanks
* See http://www.graphviz.org/content/attrs for full details
Example:
See example.yaml for examples of the above