(split from Problems with graphviz.pm plug-in)
[graphviz] generates image URLs relative to the page being rendered, which means the URLs wont work when previewing a graph from the CGI script.
Here is an updated patch againt ikiwiki-2.5:
Applied, thanks. --Joey
--- 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 "<img src=\"".urlto($dest, $params{page})."\" />\n";
+ if ($params{preview}) {
+ return "<img src=\"".urlto($dest, "")."\" />\n";
+ }
+ else {
+ return "<img src=\"".urlto($dest, $params{page})."\" />\n";
+ }
}
sub graph (@) {
Despite this patch I am still experiencing the problem. Normal page source for a graph contains:
<div id="content">
<p><img src="./graph-c9fd2a197322feb417bdedbca5e99f5aa65b3f06.png" /></p>
</div>
preview contains
<div id="preview">
<p><img src="./demo/diagrams/graph-c9fd2a197322feb417bdedbca5e99f5aa65b3f06.png" /></p>
</div>
I don't quite understand why, this makes sense from the CGI path (in my case from the root of the site). The browsers appear to be trying to fetch
/demo/diagrams/demo/diagrams/graph-c9fd2a197322feb417bdedbca5e99f5aa65b3f06.png
(i.e., prepending the required relpath twice). -- JonYeah, that patch may have been right once, but it's wrong now; preview mode uses
<base>
to make urls work the same as they would when viewing the html page.Perhaps this was not noticed for a while while because it only shows up if previewing an unchanged graph on a page that has already been built before. Fixed now. done --Joey