X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a7b8e35bf90fa9e2df8be78ac636b158760ecf9c..c5513548c9d43923829c9bc2080a3e1bb9e2cac0:/IkiWiki/Plugin/graphviz.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/graphviz.pm b/IkiWiki/Plugin/graphviz.pm index ee97c71d1..20b419413 100644 --- a/IkiWiki/Plugin/graphviz.pm +++ b/IkiWiki/Plugin/graphviz.pm @@ -9,9 +9,18 @@ use IkiWiki 2.00; use IPC::Open2; sub import { #{{{ + hook(type => "getsetup", id => "graphviz", call => \&getsetup); hook(type => "preprocess", id => "graph", call => \&graph); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => undef, + }, +} #}}} + my %graphviz_programs = ( "dot" => 1, "neato" => 1, "fdp" => 1, "twopi" => 1, "circo" => 1 ); @@ -55,7 +64,7 @@ sub render_graph (\%) { #{{{ waitpid $pid, 0; $SIG{PIPE}="DEFAULT"; - return "[[graph ".gettext("failed to run graphviz")."]]" if ($sigpipe); + error gettext("failed to run graphviz") if $sigpipe; if (! $params{preview}) { writefile($dest, $config{destdir}, $png, 1); @@ -69,7 +78,12 @@ sub render_graph (\%) { #{{{ } } - return "\n"; + if ($params{preview}) { + return "\n"; + } + else { + return "\n"; + } } #}}} sub graph (@) { #{{{ @@ -77,7 +91,7 @@ sub graph (@) { #{{{ $params{src} = "" unless defined $params{src}; $params{type} = "digraph" unless defined $params{type}; $params{prog} = "dot" unless defined $params{prog}; - return "[[graph ".gettext("prog not a valid graphviz program")."]]" unless $graphviz_programs{$params{prog}}; + error gettext("prog not a valid graphviz program") unless $graphviz_programs{$params{prog}}; return render_graph(%params); } # }}}