1
0
Fork 0
forked from github/pelican

add gravatar plugin and pelican_generate_context signal

This commit is contained in:
Nicolas Duhamel 2011-04-26 13:16:09 +02:00
commit dfe4d4e132
2 changed files with 25 additions and 0 deletions

View file

@ -8,6 +8,8 @@ import os
import math
import random
from blinker import signal
from jinja2 import Environment, FileSystemLoader
from jinja2.exceptions import TemplateNotFound
@ -92,6 +94,7 @@ class ArticlesGenerator(Generator):
self.dates = {}
self.tags = defaultdict(list)
self.categories = defaultdict(list)
self.signal = {'pelican_generate_context' : signal('pelican_generate_context')}
super(ArticlesGenerator, self).__init__(*args, **kwargs)
def generate_feeds(self, writer):
@ -200,6 +203,8 @@ class ArticlesGenerator(Generator):
and self.settings['FALLBACK_ON_FS_DATE']:
metadatas['date'] = datetime.fromtimestamp(os.stat(f).st_ctime)
self.signal['pelican_generate_context'].send(self, metadatas=metadatas)
article = Article(content, metadatas, settings=self.settings,
filename=f)
if not is_valid_content(article, f):

View file

@ -0,0 +1,20 @@
import hashlib
from blinker import signal
def add_gravatar(generator, metadatas):
#first check email
if 'email' not in metadatas.keys()\
and 'AUTHOR_EMAIL' in generator.settings.keys():
metadatas['email'] = generator.settings['AUTHOR_EMAIL']
#then add gravatar url
if 'email' in metadatas.keys():
gravatar_url = "http://www.gravatar.com/avatar/" + \
hashlib.md5(metadatas['email'].lower()).hexdigest()
metadatas["author_gravatar"] = gravatar_url
signal('pelican_generate_context').connect(add_gravatar)