summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r--IkiWiki/Plugin/recentchanges.pm23
1 files changed, 17 insertions, 6 deletions
diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm
index 6b36ea4c8..fb9841ffd 100644
--- a/IkiWiki/Plugin/recentchanges.pm
+++ b/IkiWiki/Plugin/recentchanges.pm
@@ -67,14 +67,25 @@ sub store ($$) { #{{{
];
push @{$change->{pages}}, { link => '...' } if $is_excess;
+ # Take the first line of the commit message as a summary.
+ my $m=shift @{$change->{message}};
+ $change->{summary}=$m->{line};
+
+ # See if the committer is an openid.
+ my $oiduser=IkiWiki::openiduser($change->{user});
+ if (defined $oiduser) {
+ $change->{authorurl}=$change->{user};
+ $change->{user}=$oiduser;
+ }
+ elsif (length $config{url}) {
+ $change->{authorurl}="$config{url}/".
+ (length $config{userdir} ? "$config{userdir}/" : "").
+ $change->{user};
+ }
+
# Fill out a template with the change info.
my $template=template("change.tmpl", blind_cache => 1);
- $template->param(
- user => IkiWiki::userlink($change->{user}),
- when => IkiWiki::displaytime($change->{when}, "%X %x"),
- pages => $change->{pages},
- message => $change->{message},
- );
+ $template->param(%$change);
$template->param(baseurl => "$config{url}/") if length $config{url};
IkiWiki::run_hooks(pagetemplate => sub {
shift->(page => $page, destpage => $page, template => $template);