Merge branch 'master' of ssh://git.kitenet.net/srv/git/ikiwiki.info
[ikiwiki] / doc / bugs / Problems_with_graphviz.pm_plug-in.mdwn
1 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):
2
3     utf8 "\x89" does not map to Unicode at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 53, <IN> chunk 1.
4     Wide character in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.8/IkiWiki/Plugin/graphviz.pm line 68.
5
6 > Ok, will remove the binmode IN then. done --[[Joey]]
7
8 >> Thanks --[[HenrikBrixAndersen]]
9
10 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.
11
12 >> Here is an updated patch againt ikiwiki-2.5:
13
14 >>> [[Applied|done]], thanks. --[[Joey]]
15
16     --- IkiWiki/Plugin/graphviz.pm.orig 2007-07-27 11:35:05.000000000 +0200
17     +++ IkiWiki/Plugin/graphviz.pm      2007-07-27 11:36:02.000000000 +0200
18     @@ -69,7 +69,12 @@ sub render_graph (\%) { #{{{
19                 }
20         }
21      
22     -   return "<img src=\"".urlto($dest, $params{page})."\" />\n";
23     +   if ($params{preview}) {
24     +           return "<img src=\"".urlto($dest, "")."\" />\n";
25     +   }
26     +   else {
27     +           return "<img src=\"".urlto($dest, $params{page})."\" />\n";
28     +   }
29      } #}}}
30      
31      sub graph (@) { #{{{
32
33
34 >> --[[HenrikBrixAndersen]]
35
36
37 The patch below fixes these two issues.
38
39     --- graphviz.pm.orig        Thu Jun  7 15:45:16 2007
40     +++ graphviz.pm     Fri Jun  8 12:03:38 2007
41     @@ -41,7 +41,6 @@ sub render_graph (\%) { #{{{
42                 $pid=open2(*IN, *OUT, "$params{prog} -Tpng");
43      
44                 # open2 doesn't respect "use open ':utf8'"
45     -           binmode (IN, ':utf8');
46                 binmode (OUT, ':utf8');
47      
48                 print OUT $src;
49     @@ -70,7 +69,12 @@ sub render_graph (\%) { #{{{
50                 }
51         }
52      
53     -   return "<img src=\"".urlto($dest, $params{page})."\" />\n";
54     +   if ($params{preview}) {
55     +           return "<img src=\"".urlto($dest, "")."\" />\n";
56     +   }
57     +   else {
58     +           return "<img src=\"".urlto($dest, $params{page})."\" />\n";
59     +   }
60      } #}}}
61      
62      sub graph (@) { #{{{