X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/79b376f9912891a8748fcbb4580969e4dbf7fc75..295a08394f1f962459d26db06624ff5d17bc3008:/IkiWiki/Plugin/toggle.pm?ds=sidebyside

diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm
index 657d8d3c2..af4d2ba3a 100644
--- a/IkiWiki/Plugin/toggle.pm
+++ b/IkiWiki/Plugin/toggle.pm
@@ -3,9 +3,9 @@ package IkiWiki::Plugin::toggle;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
-sub import { #{{{
+sub import {
 	add_underlay("javascript");
 	hook(type => "getsetup", id => "toggle", call => \&getsetup);
 	hook(type => "preprocess", id => "toggle",
@@ -13,17 +13,18 @@ sub import { #{{{
 	hook(type => "preprocess", id => "toggleable",
 		call => \&preprocess_toggleable);
 	hook(type => "format", id => "toggle", call => \&format);
-} # }}}
+}
 
-sub getsetup () { #{{{
+sub getsetup () {
 	return
 		plugin => {
 			safe => 1,
 			rebuild => undef,
+			section => "widget",
 		},
-} #}}}
+}
 
-sub genid ($$) { #{{{
+sub genid ($$) {
 	my $page=shift;
 	my $id=shift;
 
@@ -35,22 +36,21 @@ sub genid ($$) { #{{{
 		$id="id$id";
 	}
 	return $id;
-} #}}}
+}
 
-sub preprocess_toggle (@) { #{{{
+sub preprocess_toggle (@) {
 	my %params=(id => "default", text => "more", @_);
 
 	my $id=genid($params{page}, $params{id});
 	return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
-} # }}}
+}
 
-sub preprocess_toggleable (@) { #{{{
+sub preprocess_toggleable (@) {
 	my %params=(id => "default", text => "", open => "no", @_);
 
 	# Preprocess the text to expand any preprocessor directives
 	# embedded inside it.
-	$params{text}=IkiWiki::preprocess($params{page}, $params{destpage}, 
-		IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
+	$params{text}=IkiWiki::preprocess($params{page}, $params{destpage}, $params{text});
 	
 	my $id=genid($params{page}, $params{id});
 	my $class=(lc($params{open}) ne "yes") ? "toggleable" : "toggleable-open";
@@ -61,29 +61,28 @@ sub preprocess_toggleable (@) { #{{{
 	my ($indent)=$params{text}=~/( +)$/;
 	$indent="" unless defined $indent;
 	return "<div class=\"$class\" id=\"$id\"></div>\n\n$params{text}\n$indent<div class=\"toggleableend\"></div>";
-} # }}}
+}
 
-sub format (@) { #{{{
+sub format (@) {
         my %params=@_;
 
 	if ($params{content}=~s!(<div class="toggleable(?:-open)?" id="[^"]+">\s*)</div>!$1!g) {
 		$params{content}=~s/<div class="toggleableend">//g;
-		if (! ($params{content}=~s!^(<body>)!$1.include_javascript($params{page})!em)) {
-			# no </body> tag, probably in preview mode
-			$params{content}=include_javascript($params{page}, 1).$params{content};
+		if (! ($params{content}=~s!^(<body[^>]*>)!$1.include_javascript($params{page})!em)) {
+			# no <body> tag, probably in preview mode
+			$params{content}=include_javascript(undef).$params{content};
 		}
 	}
 	return $params{content};
-} # }}}
+}
 
-sub include_javascript ($;$) { #{{{
-	my $page=shift;
-	my $absolute=shift;
+sub include_javascript ($) {
+	my $from=shift;
 	
-	return '<script src="'.urlto("ikiwiki.js", $page, $absolute).
+	return '<script src="'.urlto("ikiwiki/ikiwiki.js", $from).
 		'" type="text/javascript" charset="utf-8"></script>'."\n".
-		'<script src="'.urlto("toggle.js", $page, $absolute).
+		'<script src="'.urlto("ikiwiki/toggle.js", $from).
 		'" type="text/javascript" charset="utf-8"></script>';
-} #}}}
+}
 
 1