From: Joey Hess Date: Wed, 21 Mar 2012 19:47:34 +0000 (-0400) Subject: inline: When the pagenames list includes pages that do not exist, skip them. X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=aaa72a3a80f89da0aec59360db11c7aa219058a7;p=ikiwiki.git inline: When the pagenames list includes pages that do not exist, skip them. bestlink returns '' if no existing page matches a link. This propigated through inline and other plugins, causing uninitialized value warnings, and in some cases (when filecheck was enabled) making the whole directive fail. Skipping the empty results fixes that, but this is papering over another problem: If the missing page is later added, there is not dependency information to know that the inline needs to be updated. Perhaps smcv will fix that later. --- diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 687c8a48f..62910972f 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -19,7 +19,7 @@ sub import { hook(type => "checkconfig", id => "inline", call => \&checkconfig); hook(type => "sessioncgi", id => "inline", call => \&sessioncgi); hook(type => "preprocess", id => "inline", - call => \&IkiWiki::preprocess_inline, scan => 1); + call => \&IkiWiki::preprocess_inline); hook(type => "pagetemplate", id => "inline", call => \&IkiWiki::pagetemplate_inline); hook(type => "format", id => "inline", call => \&format, first => 1); @@ -155,23 +155,6 @@ sub preprocess_inline (@) { if (! exists $params{pages} && ! exists $params{pagenames}) { error gettext("missing pages parameter"); } - - if (! defined wantarray) { - # Running in scan mode: only do the essentials - - if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - # default to sorting age, the same as inline itself, - # but let the params override that - IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); - } - - return; - } - - if (yesno($params{trail}) && IkiWiki::Plugin::trail->can("preprocess_trailitems")) { - scalar IkiWiki::Plugin::trail::preprocess_trailitems(sort => 'age', %params); - } - my $raw=yesno($params{raw}); my $archive=yesno($params{archive}); my $rss=(($config{rss} || $config{allowrss}) && exists $params{rss}) ? yesno($params{rss}) : $config{rss}; @@ -211,7 +194,8 @@ sub preprocess_inline (@) { } } - @list = map { bestlink($params{page}, $_) } + @list = grep { $_ ne '' } + map { bestlink($params{page}, $_) } split ' ', $params{pagenames}; if (yesno($params{reverse})) { diff --git a/debian/changelog b/debian/changelog index 5820009ef..0eca18aed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ ikiwiki (3.20120204) UNRELEASED; urgency=low * Remove dead link from plugins/teximg. Closes: #664885 + * inline: When the pagenames list includes pages that do not exist, skip + them. -- Joey Hess Wed, 21 Mar 2012 14:33:14 -0400