Credit goes to the HackergotchiPlugin for some general ideas.
Ideally, Trac itself would just include support for author avatars as a built in, since this is an extremely common and desirable feature.
For now, the approach of the plugin is to filter specific Trac views, gather all the authors found in the "data" hash being passed to Genshi, then using Genshi filters to insert additional avatar nodes.
Currently supported views are:
- Issue display
- Issue change display (i.e. comments, attachments)
- Source browser listing (tested for svn and hg so far)
- Individual changeset page (tested for svn and hg so far)
- User prefs page (includes link to "change your avatar" at gravatar.com/libravatar.org)
To install, just use python setup.py bdist_egg to create an egg file which then goes into the Trac plugins/ folder, or just python setup.py install to plug it in entirely.
To enable the plugin in trac.ini:
[components] tracvatar.* = enabled
There are then available optional "size" settings for each view, shown below are defaults:
[tracvatar] avatar_default = default backend = gravatar browser_changeset_size = 40 browser_lineitem_size = 20 metanav_size = 30 prefs_form_size = 40 ticket_comment_size = 40 ticket_reporter_size = 60 timeline_size = 30