The graphviz.pm plug-in currently attempts to read PNG data in UTF-8 mode, which sometimes fail with a message similar to the following (depending on the input): utf8 "\x89" does not map to Unicode at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 53, chunk 1. Wide character in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 68. > Ok, will remove the binmode IN then. done --[[Joey]] >> Thanks --[[HenrikBrixAndersen]] It also generates image URLs relative to the page being rendered, which means the URLs wont work when previewing a graph from the CGI script. > You seem to be using an old version of ikiwiki, these preview isues have > been fixed for some time, and the code doesn't look like what you patch > in your second hunk. --[[Joey]] >> I have just tested ikiwiki-2.5. The code in question still looks >> the same, and the patch is still needed for making the graphviz >> plug-in work in preview mode here. >>> No, the relevant code is just above the bit you patched. Notice that in >>> preview mode, it returns an img tag with the graphviz drawing embedded >>> in it, using base64 encoding. Unless you can show me why that doesn't >>> work, I still think this bug is done. --[[Joey]] >> Here is an updated patch againt ikiwiki-2.5: --- IkiWiki/Plugin/graphviz.pm.orig 2007-07-27 11:35:05.000000000 +0200 +++ IkiWiki/Plugin/graphviz.pm 2007-07-27 11:36:02.000000000 +0200 @@ -69,7 +69,12 @@ sub render_graph (\%) { #{{{ } } - return "\n"; + if ($params{preview}) { + return "\n"; + } + else { + return "\n"; + } } #}}} sub graph (@) { #{{{ >> --[[HenrikBrixAndersen]] The patch below fixes these two issues. --- graphviz.pm.orig Thu Jun 7 15:45:16 2007 +++ graphviz.pm Fri Jun 8 12:03:38 2007 @@ -41,7 +41,6 @@ sub render_graph (\%) { #{{{ $pid=open2(*IN, *OUT, "$params{prog} -Tpng"); # open2 doesn't respect "use open ':utf8'" - binmode (IN, ':utf8'); binmode (OUT, ':utf8'); print OUT $src; @@ -70,7 +69,12 @@ sub render_graph (\%) { #{{{ } } - return "\n"; + if ($params{preview}) { + return "\n"; + } + else { + return "\n"; + } } #}}} sub graph (@) { #{{{