Overview

Composition Example

strict digraph example { // nodes creation, shape and style defined here bgcolor=invis { node [style="rounded, filled" shape=box] class, File, Pipe, BasicPipeFile } { node [style=filled margin=0 width=1 height=0.46 shape=polygon fixedsize=true skew=0.4] format, file_format, pipe_format, pipefile_format } { node [shape=none] config_patterns, file_config_patterns, pipe_config_patterns, pipefile_config_patterns } { node [style="dashed, filled" shape=box] example, file_example, pipe_example, pipefile_example } // connections, labels and color related updates by higher level groups subgraph legend { edge[style=invis] // connect with invisible edges to emulate a legend class, format, example, config_patterns [color=gray40 fillcolor=gray95] config_patterns [label="field=pattern" fontcolor=gray22] class -> config_patterns -> format -> example } File, file_format, file_example [color=lightgoldenrod3 fillcolor=lemonchiffon1] file_format [label=".{suffix}"] file_example [label=".ext"] // escape the inverse slash so generated image displays one file_config_patterns [label="suffix = \\w+" fontcolor=lightgoldenrod4] Pipe, pipe_format, pipe_example [color=lightskyblue4 fillcolor=lightblue] pipe_format [label=".{pipe}"] pipe_example [label=".1 .1.out .1.out.101"] pipe_config_patterns [label="version = \\d+ output = \\w+? index = \\d+?"] BasicPipeFile, pipefile_format, pipefile_example [color=mediumorchid4 fillcolor=plum2] pipefile_format [skew=0.15 width=2 label="{base}.{pipe}.{suffix}"] pipefile_example [label="wip_data.7.ext pipe_data.7.out.ext indexed_data.7.out.101.ext"] pipefile_config_patterns [label="base = \\w+" fontcolor=mediumorchid4] edge [color=gray36 arrowhead=vee] Pipe -> pipe_config_patterns -> pipe_format -> pipe_example File -> file_config_patterns -> file_format -> file_example BasicPipeFile -> pipefile_config_patterns -> pipefile_format -> pipefile_example {Pipe, File} -> BasicPipeFile }

Usage