summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-10-30 13:41:19 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-10-30 13:41:19 -0400
commit354d22e27b4d9cb8207e038de4f342545435d2c6 (patch)
tree748615018538b1672fd3784600b2b4ae3138f985 /IkiWiki
parent8f5723e1d572664ecac4d0aeed079ab3365719cc (diff)
don't rely on plugin load order when determining generated directives
Instead, shortcuts will explicitly be marked as such when registered, and listdirectives can filter them out.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/listdirectives.pm9
-rw-r--r--IkiWiki/Plugin/shortcut.pm1
2 files changed, 5 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/listdirectives.pm b/IkiWiki/Plugin/listdirectives.pm
index fc8927ccb..2ab3e4665 100644
--- a/IkiWiki/Plugin/listdirectives.pm
+++ b/IkiWiki/Plugin/listdirectives.pm
@@ -30,7 +30,7 @@ sub getsetup () { #{{{
} #}}}
my @fulllist;
-my @earlylist;
+my @shortlist;
my $pluginstring;
sub checkconfig () { #{{{
@@ -40,15 +40,14 @@ sub checkconfig () { #{{{
else {
$config{directive_description_dir} =~ s/\/+$//;
}
-
- @earlylist = sort keys %{$IkiWiki::hooks{preprocess}};
} #}}}
sub needsbuild (@) { #{{{
my $needsbuild=shift;
@fulllist = sort keys %{$IkiWiki::hooks{preprocess}};
- $pluginstring = join(' ', @earlylist) . " : " . join(' ', @fulllist);
+ @shortlist = grep { ! $IkiWiki::hooks{preprocess}{$_}{shortcut} } @fulllist;
+ $pluginstring = join(' ', @shortlist) . " : " . join(' ', @fulllist);
foreach my $page (keys %pagestate) {
if (exists $pagestate{$page}{listdirectives}{shown}) {
@@ -77,7 +76,7 @@ sub preprocess (@) { #{{{
@pluginlist = @fulllist;
}
else {
- @pluginlist = @earlylist;
+ @pluginlist = @shortlist;
}
my $result = '<ul class="listdirectives">';
diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm
index 77131edb0..dec8afdb5 100644
--- a/IkiWiki/Plugin/shortcut.pm
+++ b/IkiWiki/Plugin/shortcut.pm
@@ -39,6 +39,7 @@ sub preprocess_shortcut (@) { #{{{
}
hook(type => "preprocess", no_override => 1, id => $params{name},
+ shortcut => 1,
call => sub { shortcut_expand($params{url}, $params{desc}, @_) });
#translators: This is used to display what shortcuts are defined.