X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/4bda18a50aab714e72fce347cb4cff32316e55de..e96cf38eccd219714140f221090d2e7751fd4ee0:/IkiWiki/Plugin/img.pm diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm index 6f1919ea0..63dfa9019 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}) { @@ -110,9 +115,6 @@ sub preprocess (@) { $im = Image::Magick->new; $r = $im->Read($outfile); error sprintf(gettext("failed to read %s: %s"), $outfile, $r) if $r; - - $dwidth = $im->Get("width"); - $dheight = $im->Get("height"); } else { ($dwidth, $dheight)=($w, $h); @@ -128,6 +130,9 @@ sub preprocess (@) { $imglink = $file; } } + + $dwidth = $im->Get("width") unless defined $dwidth; + $dheight = $im->Get("height") unless defined $dheight; } } else { @@ -156,22 +161,20 @@ sub preprocess (@) { (exists $params{alt} ? ' alt="'.$params{alt}.'"' : ''). (exists $params{title} ? ' title="'.$params{title}.'"' : ''). (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') { - if (exists $params{caption} || !exists $params{align}) { - $imgtag=''.$imgtag.''; - } else { - $imgtag=''.$imgtag.''; - } + my $link; + if (! defined $params{link}) { + $link=$fileurl; } elsif ($params{link} =~ /^\w+:\/\//) { - if (exists $params{caption} || !exists $params{align}) { - $imgtag=''.$imgtag.''; - } else { - $imgtag=''.$imgtag.''; - } + $link=$params{link}; + } + + if (defined $link) { + $imgtag=''.$imgtag.''; } else { my $b = bestlink($params{page}, $params{link}); @@ -181,14 +184,13 @@ sub preprocess (@) { $imgtag=htmllink($params{page}, $params{destpage}, $params{link}, linktext => $imgtag, noimageinline => 1, - (exists $params{caption} || !exists $params{align}) ? - () : (class => 'align-'.$params{align})); + ); } } if (exists $params{caption}) { return ''. ''. ''.
'.$params{caption}.'
'.$imgtag.'