mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
add gravatar plugin and pelican_generate_context signal
This commit is contained in:
parent
4fb5d2b31e
commit
dfe4d4e132
2 changed files with 25 additions and 0 deletions
|
|
@ -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):
|
||||
|
|
|
|||
20
plugins_samples/gravatar.py
Normal file
20
plugins_samples/gravatar.py
Normal 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue