aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2012-03-21 15:47:34 -0400
committerJoey Hess <joey@kitenet.net>2012-03-21 15:48:25 -0400
commitaaa72a3a80f89da0aec59360db11c7aa219058a7 (patch)
tree3c9f027547efbdc8d7b853b8d6d2a331055b38bb
parent662ea9971c6608a6a826b8b29ce7294e77304b41 (diff)
downloadikiwiki-aaa72a3a80f89da0aec59360db11c7aa219058a7.tar
ikiwiki-aaa72a3a80f89da0aec59360db11c7aa219058a7.tar.gz
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.
-rw-r--r--IkiWiki/Plugin/inline.pm22
-rw-r--r--debian/changelog2
2 files changed, 5 insertions, 19 deletions
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 <joeyh@debian.org> Wed, 21 Mar 2012 14:33:14 -0400