Introduction

You can create graphs in this wiki using in-line dot code. This uses the dot.py parser extenstion to MoinMoin.

To write a graph in-line, you need to use a code block with a specified parser (see HelpOnParsers). For example, the sequence (minus the extra spaces in the code block opening and closing):

{ { {#!dot
digraph porting_map {
  size="6,6";
  compound=true;
  node [shape=box];
  subgraph cluster_vesta_umb {
    label = "vesta_umb";
    style=filled;
    color=lightgrey;
    node [style=filled,color=white];
    subgraph cluster_basics_umb {
      label = "basics_umb";
      style=filled;
      color=turquoise;
      node [style=filled,color=white];
      basics -> generics;
      basics -> os;

      basics [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/basics/basics']
      generics [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/basics/generics']
      os [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/basics/os']
    }

    basics -> config [ltail=cluster_basics_umb];
    basics -> log [ltail=cluster_basics_umb];
    config -> srpc;
    srpc -> fp;
    log -> fp;
    fp -> repos;
    repos -> repos_ui;
    repos -> cache;
    repos -> run_tool;
    repos_ui -> vimports;
    repos_ui -> repltools;

    config  [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/config']
    log  [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/log']
    srpc [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/srpc']
    fp [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/fp']
    repos [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/repos']
    repos_ui [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/repos_ui']
    run_tool [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/run_tool']
    cache [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/cache']
    vimports [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/vimports']
    repltools [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/repltools']
  }
  repos_ui -> eval;
  cache -> eval;
  run_tool -> eval;
  cache -> weeder;
  repos -> perftools;

  eval [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/eval']
  weeder [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/weeder']
  perftools [URL='http://pub.vestasys.org/cgi-bin/vestaweb?path=/vesta/vestasys.org/vesta/perftools']
}
} } }

Would be rendered as:

dot syntax

For the full documentaiton on the dot syntax, see:

http://www.graphviz.org/

From the documentation in dot.py

Plain Dot features:

{ { {#!dot
    digraph G {
      node [style=filled, fillcolor=white]
      a -> b -> c -> d -> e -> a

      // a comment

      a [URL='http://some.where/a']   // link to an external URL
      b [URL='MoinMoinLink']          // link to a wiki absolute page
      c [URL='/Subpage']              // link to a wiki subpage
      d [URL='#anchor']               // link to an anchor in current page
      e [fillcolor=blue]
    }
} } }

Extra MoinMoin-ish features:

{ { {#!dot OPTIONS
    digraph G {
      node [style=filled, fillcolor=white]
      a -> b -> c -> d -> e -> a

      [[Include(MoinMoinPage)]]       // include a whole wiki page content
      [[Include(MoinMoinPage,name)]]  // same, but just a named dot section
      [[Include(,name)]]              // include named dot sect of current page
      [[Set(varname,'value')]]        // assign a value to a variable
      [[Get(varname)]]                // expand a variable
    }
} } }

Options:

name=IDENTIFIER
name this dot section; used in conjunction with Include.
show=0|1
allow to hide a dot section; useful to define hidden named section used as 'libraries' to be included.
debug=0|1
when not 0,preceed the image by the expanded dot source.
help=0|1|2
when not 0, display 1:short or 2:full help in the page.

And the result will be an attached PNG, displayed at this point in the document. The AttachFile action must therefore be enabled.

If some node in the input contains a URL label, the processor will generate a user-side image map.

Here are some external examples of use of this processor (from the people who created it):

Available Fonts

From msttcorefonts:

From gsfonts:

Rendered sample: