From: Jakub Narebski <jnareb@gmail.com>
To: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Petr Baudis <pasky@suse.cz>
Subject: Re: [PATCHv8 4/7] gitweb: (gr)avatar support
Date: Tue, 30 Jun 2009 22:16:48 +0200 [thread overview]
Message-ID: <200906302216.48872.jnareb@gmail.com> (raw)
In-Reply-To: <1246312854-3365-5-git-send-email-giuseppe.bilotta@gmail.com>
On Tue, 30 Jun 2009, Giuseppe Bilotta wrote:
> Introduce avatar support: the feature adds the appropriate img tag next
> to author and committer in commit(diff), history, shortlog, log and tag
> views. Multiple avatar providers are possible, but only gravatar is
> implemented at the moment.
>
> Gravatar support depends on Digest::MD5, which is a core package since
> Perl 5.8. If gravatars are activated but Digest::MD5 cannot be found,
> the feature will be automatically disabled.
>
> No avatar provider is selected by default, except in the t9500 test.
>
> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
I like both commit message and comprehensive comments.
Acked-by: Jakub Narebski <jnareb@gmail.com>
[...]
> +# Insert an avatar for the given $email at the given $size if the feature
> +# is enabled.
> +sub git_get_avatar {
> + my ($email, %opts) = @_;
> + my $pre_white = ($opts{-pad_before} ? " " : "");
> + my $post_white = ($opts{-pad_after} ? " " : "");
> + $opts{-size} ||= 'default';
> + my $size = $avatar_size{$opts{-size}} || $avatar_size{'default'};
> + my $url = "";
> + if ($git_avatar eq 'gravatar') {
> + $url = "http://www.gravatar.com/avatar/" .
> + Digest::MD5::md5_hex(lc $email) . "?s=$size";
> + }
I guess that you use short form 's' instead of 'size' to make URL (and
therefore gitweb pages) shorter, isn't it?
> + # Currently only gravatars are supported, but other forms such as
> + # picons can be added by putting an else up here and defining $url
> + # as needed. If no variant puts something in $url, we assume avatars
> + # are completely disabled/unavailable.
> + if ($url) {
> + return $pre_white .
> + "<img width=\"$size\" " .
> + "class=\"avatar\" " .
> + "src=\"$url\" " .
> + "/>" . $post_white;
Nitpicky sidenote: it might be more readable to use qq( ... ) quote-like
operator to avoid need to escape \" while providing variable
interpolation. But on the other hand it might not: this is more obscure
Perl operator.
Nevertheless it is not something to worry about (and certainly not
something that would require resend).
> + } else {
> + return "";
> + }
> +}
> +
> # format the author name of the given commit with the given tag
> # the author name is chopped and escaped according to the other
> # optional parameters (see chop_str).
> @@ -1476,7 +1547,9 @@ sub format_author_html {
> my $tag = shift;
> my $co = shift;
> my $author = chop_and_escape_str($co->{'author_name'}, @_);
> - return "<$tag class=\"author\">" . $author . "</$tag>";
> + return "<$tag class=\"author\">" .
> + git_get_avatar($co->{'author_email'}, -pad_after => 1) .
> + $author . "</$tag>";
> }
>
> # format git diff header line, i.e. "diff --(git|combined|cc) ..."
> @@ -3252,7 +3325,8 @@ sub git_print_authorship {
> esc_html($co->{'author_name'}) .
> " [$ad{'rfc2822'}";
> print_local_time(%ad) if ($opts{-localtime});
> - print "]</$tag>\n";
> + print "]" . git_get_avatar($co->{'author_email'}, -pad_before => 1)
> + . "</$tag>\n";
> }
>
> # Outputs table rows containing the full author or committer information,
> @@ -3267,7 +3341,10 @@ sub git_print_authorship_rows {
> @people = ('author', 'committer') unless @people;
> foreach my $who (@people) {
> my %wd = parse_date($co->{"${who}_epoch"}, $co->{"${who}_tz"});
> - print "<tr><td>$who</td><td>" . esc_html($co->{$who}) . "</td></tr>\n".
> + print "<tr><td>$who</td><td>" . esc_html($co->{$who}) . "</td>" .
> + "<td rowspan=\"2\">" .
> + git_get_avatar($co->{"${who}_email"}, -size => 'double') .
> + "</td></tr>\n" .
> "<tr>" .
> "<td></td><td> $wd{'rfc2822'}";
> print_local_time(%wd);
> diff --git a/t/t9500-gitweb-standalone-no-errors.sh b/t/t9500-gitweb-standalone-no-errors.sh
> index d539619..6275181 100755
> --- a/t/t9500-gitweb-standalone-no-errors.sh
> +++ b/t/t9500-gitweb-standalone-no-errors.sh
> @@ -660,6 +660,7 @@ cat >>gitweb_config.perl <<EOF
>
> \$feature{'blame'}{'override'} = 1;
> \$feature{'snapshot'}{'override'} = 1;
> +\$feature{'avatar'}{'override'} = 1;
> EOF
>
> test_expect_success \
> @@ -671,6 +672,7 @@ test_expect_success \
> 'config override: tree view, features disabled in repo config' \
> 'git config gitweb.blame no &&
> git config gitweb.snapshot none &&
> + git config gitweb.avatar gravatar &&
> gitweb_run "p=.git;a=tree"'
> test_debug 'cat gitweb.log'
>
> --
> 1.6.3.rc1.192.gdbfcb
>
>
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2009-06-30 20:30 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-29 22:00 [PATCHv8 0/7] gitweb: avatar support Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 1/7] gitweb: refactor author name insertion Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 2/7] gitweb: uniform author info for commit and commitdiff Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 3/7] gitweb: use git_print_authorship_rows in 'tag' view too Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 4/7] gitweb: (gr)avatar support Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 5/7] gitweb: gravatar url cache Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 6/7] gitweb: picon avatar provider Giuseppe Bilotta
2009-06-29 22:00 ` [PATCHv8 7/7] gitweb: add empty alt text to avatar img Giuseppe Bilotta
2009-06-30 20:29 ` Jakub Narebski
2009-06-30 20:23 ` [PATCHv8 6/7] gitweb: picon avatar provider Jakub Narebski
2009-06-30 20:50 ` Giuseppe Bilotta
2009-06-30 20:18 ` [PATCHv8 5/7] gitweb: gravatar url cache Jakub Narebski
2009-06-30 20:38 ` Junio C Hamano
2009-06-30 20:52 ` Giuseppe Bilotta
2009-06-30 20:16 ` Jakub Narebski [this message]
2009-06-30 20:10 ` [PATCHv8 3/7] gitweb: use git_print_authorship_rows in 'tag' view too Jakub Narebski
2009-06-30 20:04 ` [PATCHv8 2/7] gitweb: uniform author info for commit and commitdiff Jakub Narebski
2009-06-30 20:04 ` [PATCHv8 1/7] gitweb: refactor author name insertion Jakub Narebski
2009-06-30 20:23 ` Giuseppe Bilotta
2009-06-30 21:08 ` Jakub Narebski
2009-06-30 23:15 ` Giuseppe Bilotta
2009-07-01 7:41 ` Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200906302216.48872.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=giuseppe.bilotta@gmail.com \
--cc=pasky@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.