2011-04-26 13:16:09 +02:00
|
|
|
import hashlib
|
|
|
|
|
|
2011-06-18 01:03:53 +02:00
|
|
|
from pelican import signals
|
2011-04-26 19:44:55 +02:00
|
|
|
"""
|
2012-03-21 00:09:44 +01:00
|
|
|
Gravatar plugin for Pelican
|
|
|
|
|
===========================
|
2011-04-26 13:16:09 +02:00
|
|
|
|
2012-03-21 00:09:44 +01:00
|
|
|
Simply add author_gravatar variable in article's context, which contains
|
2011-04-26 19:44:55 +02:00
|
|
|
the gravatar url.
|
|
|
|
|
|
|
|
|
|
Settings:
|
|
|
|
|
---------
|
|
|
|
|
|
2012-03-21 00:09:44 +01:00
|
|
|
Add AUTHOR_EMAIL to your settings file to define default author email.
|
2011-04-26 19:44:55 +02:00
|
|
|
|
2011-06-17 23:37:08 +02:00
|
|
|
Article metadata:
|
2011-04-26 19:44:55 +02:00
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
:email: article's author email
|
|
|
|
|
|
2012-03-21 00:09:44 +01:00
|
|
|
If one of them are defined, the author_gravatar variable is added to
|
2011-04-26 19:44:55 +02:00
|
|
|
article's context.
|
|
|
|
|
"""
|
2011-04-26 13:16:09 +02:00
|
|
|
|
2011-06-17 23:37:08 +02:00
|
|
|
def add_gravatar(generator, metadata):
|
2012-03-21 00:09:44 +01:00
|
|
|
|
2011-04-26 13:16:09 +02:00
|
|
|
#first check email
|
2011-06-17 23:37:08 +02:00
|
|
|
if 'email' not in metadata.keys()\
|
2011-04-26 13:16:09 +02:00
|
|
|
and 'AUTHOR_EMAIL' in generator.settings.keys():
|
2011-06-17 23:37:08 +02:00
|
|
|
metadata['email'] = generator.settings['AUTHOR_EMAIL']
|
2012-03-21 00:09:44 +01:00
|
|
|
|
2011-04-26 13:16:09 +02:00
|
|
|
#then add gravatar url
|
2011-06-17 23:37:08 +02:00
|
|
|
if 'email' in metadata.keys():
|
2011-04-26 13:16:09 +02:00
|
|
|
gravatar_url = "http://www.gravatar.com/avatar/" + \
|
2011-06-17 23:37:08 +02:00
|
|
|
hashlib.md5(metadata['email'].lower()).hexdigest()
|
|
|
|
|
metadata["author_gravatar"] = gravatar_url
|
|
|
|
|
|
2012-03-21 00:09:44 +01:00
|
|
|
|
|
|
|
|
def register():
|
2011-06-18 01:03:53 +02:00
|
|
|
signals.article_generate_context.connect(add_gravatar)
|