X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/f42215cb65173299bca13cd8bafabdcb9ad2ab2d..121e2ffc2f25bf264a68d35e80a9386995fa9e5a:/IkiWiki/Plugin/img.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm index 223b5a11f..f06121578 100644 --- a/IkiWiki/Plugin/img.pm +++ b/IkiWiki/Plugin/img.pm @@ -19,6 +19,7 @@ sub getsetup () { plugin => { safe => 1, rebuild => undef, + section => "widget", }, } @@ -26,6 +27,10 @@ sub preprocess (@) { my ($image) = $_[0] =~ /$config{wiki_file_regexp}/; # untaint my %params=@_; + if (! defined $image) { + error("bad image filename"); + } + if (exists $imgdefaults{$params{page}}) { foreach my $key (keys %{$imgdefaults{$params{page}}}) { if (! exists $params{$key}) { @@ -44,6 +49,7 @@ sub preprocess (@) { } add_link($params{page}, $image); + add_depends($params{page}, $image); # optimisation: detect scan mode, and avoid generating the image if (! defined wantarray) { @@ -69,8 +75,6 @@ sub preprocess (@) { my ($dwidth, $dheight); if ($params{size} ne 'full') { - add_depends($params{page}, $image); - my ($w, $h) = ($params{size} =~ /^(\d*)x(\d*)$/); error sprintf(gettext('wrong size format "%s" (should be WxH)'), $params{size}) unless (defined $w && defined $h && @@ -156,30 +160,38 @@ sub preprocess (@) { '" height="'.$dheight.'"'. (exists $params{alt} ? ' alt="'.$params{alt}.'"' : ''). (exists $params{title} ? ' title="'.$params{title}.'"' : ''). - (exists $params{align} ? ' align="'.$params{align}.'"' : ''). (exists $params{class} ? ' class="'.$params{class}.'"' : ''). + (exists $params{align} && ! exists $params{caption} ? ' align="'.$params{align}.'"' : ''). (exists $params{id} ? ' id="'.$params{id}.'"' : ''). ' />'; - if (! defined $params{link} || lc($params{link}) eq 'yes') { - $imgtag=''.$imgtag.''; + my $link; + if (! defined $params{link}) { + $link=$fileurl; } elsif ($params{link} =~ /^\w+:\/\//) { - $imgtag=''.$imgtag.''; + $link=$params{link}; + } + + if (defined $link) { + $imgtag=''.$imgtag.''; } else { my $b = bestlink($params{page}, $params{link}); if (length $b) { - add_depends($params{page}, $b); + add_depends($params{page}, $b, deptype("presence")); $imgtag=htmllink($params{page}, $params{destpage}, $params{link}, linktext => $imgtag, - noimageinline => 1); + noimageinline => 1, + ); } } if (exists $params{caption}) { - return ''. + return '
'. ''. ''. '
'.$params{caption}.'
'.$imgtag.'
';