aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-05-03 12:15:40 -0400
committerJoey Hess <joey@kitenet.net>2010-05-03 12:46:52 -0400
commit2f22ee85e547dfe408fc0ec520aed6a6e137e136 (patch)
treebf9ee906ca723453e9a8c05b32ab3cb502e941b5 /IkiWiki
parentadf182669dbb82b821216faf643ac5084f252a19 (diff)
downloadikiwiki-2f22ee85e547dfe408fc0ec520aed6a6e137e136.tar
ikiwiki-2f22ee85e547dfe408fc0ec520aed6a6e137e136.tar.gz
Add ACTIONS variable to page.tmpl, which allows plugins to add arbitrary links to the action bar without modifying the template further.
(COMMENTSLINK and DISCUSSIONLINK could be folded into this, but are kept separate for now to avoid breaking modified templates.)
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/skeleton.pm.example9
-rw-r--r--IkiWiki/Render.pm9
2 files changed, 17 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/skeleton.pm.example b/IkiWiki/Plugin/skeleton.pm.example
index ddf2996d6..a404e24af 100644
--- a/IkiWiki/Plugin/skeleton.pm.example
+++ b/IkiWiki/Plugin/skeleton.pm.example
@@ -24,6 +24,7 @@ sub import {
hook(type => "format", id => "skeleton", call => \&format);
hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
hook(type => "templatefile", id => "skeleton", call => \&templatefile);
+ hook(type => "pageactions", id => "skeleton", call => \&pageactions);
hook(type => "delete", id => "skeleton", call => \&delete);
hook(type => "change", id => "skeleton", call => \&change);
hook(type => "cgi", id => "skeleton", call => \&cgi);
@@ -146,6 +147,14 @@ sub templatefile (@) {
debug("skeleton plugin running as a templatefile hook");
}
+sub pageactions (@) {
+ my %params=@_;
+ my $page=$params{page};
+
+ debug("skeleton plugin running as a pageactions hook");
+ return ();
+}
+
sub delete (@) {
my @files=@_;
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index cf6943e7d..a824ba539 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -112,7 +112,14 @@ sub genpage ($$) {
}
}
- if ($actions) {
+ my @actions;
+ run_hooks(pageactions => sub {
+ push @actions, map { { action => $_ } }
+ grep { defined } shift->(page => $page);
+ });
+ $template->param(actions => \@actions);
+
+ if ($actions || @actions) {
$template->param(have_actions => 1);
}