my $maxlines=200;
sub import {
+ add_underlay("javascript");
hook(type => "getsetup", id => "recentchangesdiff",
call => \&getsetup);
hook(type => "pagetemplate", id => "recentchangesdiff",
call => \&pagetemplate);
+ hook(type => "format", id => "recentchangesdiff.pm", call => \&format);
}
sub getsetup () {
}
}
+sub format (@) {
+ my %params=@_;
+
+ 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};
+}
+
+# taken verbatim from toggle.pm
+sub include_javascript ($) {
+ my $from=shift;
+
+ return '<script src="'.urlto("ikiwiki/ikiwiki.js", $from).
+ '" type="text/javascript" charset="utf-8"></script>'."\n".
+ '<script src="'.urlto("ikiwiki/toggle.js", $from).
+ '" type="text/javascript" charset="utf-8"></script>';
+}
+
1
<div id="change-<TMPL_VAR REV>" class="metadata">
<span class="desc"><br />Changed pages:</span>
<span class="pagelinks">
+<TMPL_IF DIFF>
+<a href="#diff-<TMPL_VAR REV>" class="toggle" title="revert" rel="nofollow">[[diff|wikiicons/diff.png]]</a>
+</TMPL_IF>
<TMPL_LOOP PAGES>
<TMPL_IF DIFFURL><a href="<TMPL_VAR DIFFURL>" title="diff" rel="nofollow">[[diff|wikiicons/diff.png]]</a><TMPL_VAR LINK>
<TMPL_ELSE><TMPL_VAR LINK></TMPL_IF>
</TMPL_IF>
</TMPL_LOOP>
</div>
+<TMPL_UNLESS DIFFURL>
<TMPL_IF DIFF>
-<div class="diff">
+<div class="toggleable" id="diff-<TMPL_VAR REV>">
<pre>
<TMPL_VAR DIFF>
</pre>
</div>
</TMPL_IF>
+</TMPL_UNLESS>
<!-- <TMPL_VAR REV> -->