From: Joey Hess Date: Wed, 23 Jun 2010 19:32:27 +0000 (-0400) Subject: Add new optional field usershort to rcs_recentchanges. X-Git-Tag: 3.20100704~42 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=c46bcb425af0948ac59581d6ba7b477826d83ae3;p=ikiwiki.git Add new optional field usershort to rcs_recentchanges. Now the git plugin supports commits with author fields that look like: Author: http://my.openid/ Then in recentchanges, the short username will be displayed, linking to the openid. Particularly useful for the horrible google openids, of course. --- diff --git a/IkiWiki/Plugin/git.pm b/IkiWiki/Plugin/git.pm index 222692eda..a43b85920 100644 --- a/IkiWiki/Plugin/git.pm +++ b/IkiWiki/Plugin/git.pm @@ -342,8 +342,9 @@ sub parse_diff_tree ($) { $ci{ "${who}_epoch" } = $epoch; $ci{ "${who}_tz" } = $tz; - if ($name =~ m/^[^<]+\s+<([^@>]+)/) { - $ci{"${who}_username"} = $1; + if ($name =~ m/^([^<]+)\s+<([^@>]+)/) { + $ci{"${who}_name"} = $1; + $ci{"${who}_username"} = $2; } elsif ($name =~ m/^([^<]+)\s+<>$/) { $ci{"${who}_username"} = $1; @@ -588,9 +589,14 @@ sub rcs_recentchanges ($) { push @messages, { line => $line }; } - my $user=$ci->{'author_username'}; + my $user=$ci->{'author_name'}; + my $usershort=$ci->{'author_username'}; my $web_commit = ($ci->{'author'} =~ /\@web>/); - + + if ($usershort =~ /:\/\//) { + $usershort=undef; # url; not really short + } + # compatability code for old web commit messages if (! $web_commit && defined $messages[0] && @@ -603,6 +609,7 @@ sub rcs_recentchanges ($) { push @rets, { rev => $sha1, user => $user, + usershort => $usershort, committype => $web_commit ? "web" : "git", when => $when, message => [@messages], diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index e546e4702..9f188cbff 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -114,12 +114,11 @@ sub store ($$$) { ]; push @{$change->{pages}}, { link => '...' } if $is_excess; - # See if the committer is an openid. $change->{author}=$change->{user}; my $oiduser=eval { IkiWiki::openiduser($change->{user}) }; if (defined $oiduser) { $change->{authorurl}=$change->{user}; - $change->{user}=$oiduser; + $change->{user}=defined $change->{usershort} ? $change->{usershort} : $oiduser; } elsif (length $config{cgiurl}) { $change->{authorurl} = IkiWiki::cgiurl( diff --git a/debian/changelog b/debian/changelog index 032041346..01d0abb47 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ikiwiki (3.20100624) UNRELEASED; urgency=low + + * Add new optional field usershort to rcs_recentchanges. + + -- Joey Hess Wed, 23 Jun 2010 15:30:04 -0400 + ikiwiki (3.20100623) unstable; urgency=low * openid: Add openid_realm and openid_cgiurl configuration options, diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 193005565..5f0e95a9f 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -1103,7 +1103,9 @@ The data structure returned for each change is: { rev => # the RCSs id for this commit - user => # name of user who made the change, + user => # user who made the change (may be an openid), + usershort => # short name of user (optional; not an openid), + committype => # either "web" or the name of the rcs, when => # time when the change was made, message => [