hook(type => "sessioncgi", id => "recentchanges", call => \&sessioncgi);
# Load goto to fix up links from recentchanges
IkiWiki::loadplugin("goto");
+ # ... and transient as somewhere to put our internal pages
+ IkiWiki::loadplugin("transient");
}
sub getsetup () {
# delete old and excess changes
foreach my $page (keys %pagesources) {
if ($pagesources{$page} =~ /\._change$/ && ! $seen{$page}) {
- unlink($config{srcdir}.'/'.$pagesources{$page});
+ unlink($IkiWiki::Plugin::transient::transientdir.'/'.$pagesources{$page}) || unlink($config{srcdir}.'/'.$pagesources{$page});
}
}
}
}
elsif ($form->submitted ne 'Cancel') {
$form->title(sprintf(gettext("confirm reversion of %s"), $rev));
- $form->tmpl_param(diff => encode_entities(scalar IkiWiki::rcs_diff($rev)));
+ $form->tmpl_param(diff => encode_entities(scalar IkiWiki::rcs_diff($rev, 200)));
$form->field(name => "rev", type => "hidden", value => $rev, force => 1);
IkiWiki::showform($form, $buttons, $session, $q);
exit 0;
}
- IkiWiki::redirect($q, urlto($config{recentchangespage}, undef));
+ IkiWiki::redirect($q, urlto($config{recentchangespage}));
exit 0;
}
# Limit pages to first 10, and add links to the changed pages.
my $is_excess = exists $change->{pages}[10];
delete @{$change->{pages}}[10 .. @{$change->{pages}}] if $is_excess;
+ my $has_diffurl=0;
$change->{pages} = [
map {
if (length $config{cgiurl}) {
else {
$_->{link} = pagetitle($_->{page});
}
- $_->{baseurl}=IkiWiki::baseurl(undef) if length $config{url};
+ if (defined $_->{diffurl} && length($_->{diffurl})) {
+ $has_diffurl=1;
+ }
$_;
} @{$change->{pages}}
wikiname => $config{wikiname},
);
- $template->param(permalink => urlto($config{recentchangespage}, undef)."#change-".titlepage($change->{rev}))
+ $template->param(has_diffurl => 1) if $has_diffurl;
+
+ $template->param(permalink => urlto($config{recentchangespage})."#change-".titlepage($change->{rev}))
if exists $config{url};
IkiWiki::run_hooks(pagetemplate => sub {
});
my $file=$page."._change";
- writefile($file, $config{srcdir}, $template->output);
- utime $change->{when}, $change->{when}, "$config{srcdir}/$file";
+ writefile($file, $IkiWiki::Plugin::transient::transientdir, $template->output);
+ utime $change->{when}, $change->{when}, $IkiWiki::Plugin::transient::transientdir.'/'.$file;
return $page;
}