X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/cedb48765b52d3e074f43703cf55611b3bce101d..3316f9cc737c091ff79270f75fc30dd349616b12:/IkiWiki/Plugin/sidebar.pm?ds=inline

diff --git a/IkiWiki/Plugin/sidebar.pm b/IkiWiki/Plugin/sidebar.pm
index a6efc6b8e..41812e1c1 100644
--- a/IkiWiki/Plugin/sidebar.pm
+++ b/IkiWiki/Plugin/sidebar.pm
@@ -6,32 +6,45 @@ package IkiWiki::Plugin::sidebar;
 
 use warnings;
 use strict;
-use IkiWiki;
-
-sub import { #{{{
-	IkiWiki::hook(type => "pagetemplate", id => "sidebar", 
-		call => \&pagetemplate);
-} # }}}
-
-sub sidebar_content ($) { #{{{
+use IkiWiki 3.00;
+
+sub import {
+	hook(type => "getsetup", id => "sidebar", call => \&getsetup);
+	hook(type => "pagetemplate", id => "sidebar", call => \&pagetemplate);
+}
+
+sub getsetup () {
+	return
+		plugin => {
+			safe => 1,
+			rebuild => 1,
+		},
+}
+
+sub sidebar_content ($) {
 	my $page=shift;
 	
-	my $sidebar_page=IkiWiki::bestlink($page, "sidebar") || return;
-	my $sidebar_file=$IkiWiki::pagesources{$sidebar_page} || return;
-	my $sidebar_type=IkiWiki::pagetype($sidebar_file);
+	my $sidebar_page=bestlink($page, "sidebar") || return;
+	my $sidebar_file=$pagesources{$sidebar_page} || return;
+	my $sidebar_type=pagetype($sidebar_file);
 	
 	if (defined $sidebar_type) {
-		IkiWiki::add_depends($page, $sidebar_page);
-		my $content=IkiWiki::readfile(IkiWiki::srcfile($sidebar_file));
+		# FIXME: This isn't quite right; it won't take into account
+		# adding a new sidebar page. So adding such a page
+		# currently requires a wiki rebuild.
+		add_depends($page, $sidebar_page);
+
+		my $content=readfile(srcfile($sidebar_file));
 		return unless length $content;
-		return IkiWiki::htmlize($sidebar_type,
+		return IkiWiki::htmlize($sidebar_page, $page, $sidebar_type,
+		       IkiWiki::linkify($sidebar_page, $page,
 		       IkiWiki::preprocess($sidebar_page, $page,
-		       IkiWiki::linkify($sidebar_page, $page, $content)));
+		       IkiWiki::filter($sidebar_page, $page, $content))));
 	}
 
-} # }}}
+}
 
-sub pagetemplate (@) { #{{{
+sub pagetemplate (@) {
 	my %params=@_;
 
 	my $page=$params{page};
@@ -43,6 +56,6 @@ sub pagetemplate (@) { #{{{
 		        $template->param(sidebar => $content);
 		}
 	}
-} # }}}
+}
 
 1