share_post: fire on all_generators_finalized so that links resolve

Fixes #577. Closes #598.

Ref:
* https://github.com/getpelican/pelican-plugins/issues/577
* https://github.com/getpelican/pelican-plugins/pull/556#issuecomment-140250725
This commit is contained in:
Kernc 2015-11-09 00:09:00 +01:00 committed by Justin Mayer
commit 8209565864

View file

@ -12,6 +12,7 @@ try:
except ImportError:
from urllib import quote
from pelican import signals, contents
from pelican.generators import ArticlesGenerator, PagesGenerator
def article_title(content):
@ -40,7 +41,7 @@ def share_post(content):
tweet = ('%s%s%s' % (title, quote(' '), url)).encode('utf-8')
diaspora_link = 'https://sharetodiaspora.github.io/?title=%s&url=%s' % (title, url)
facebook_link = 'http://www.facebook.com/sharer/sharer.php?s=100&p%%5Burl%%5D=%s' % url
facebook_link = 'http://www.facebook.com/sharer/sharer.php?u=%s' % url
gplus_link = 'https://plus.google.com/share?url=%s' % url
twitter_link = 'http://twitter.com/home?status=%s' % tweet
linkedin_link = 'https://www.linkedin.com/shareArticle?mini=true&url=%s&title=%s&summary=%s&source=%s' % (
@ -54,13 +55,27 @@ def share_post(content):
'twitter': twitter_link,
'facebook': facebook_link,
'google-plus': gplus_link,
'linkedin': linkedin_link,
'linkedin': linkedin_link,
'email': mail_link
}
content.share_post = share_links
def run_plugin(generators):
for generator in generators:
if isinstance(generator, ArticlesGenerator):
for article in generator.articles:
share_post(article)
elif isinstance(generator, PagesGenerator):
for page in generator.pages:
share_post(page)
def register():
signals.content_object_init.connect(share_post)
try:
signals.all_generators_finalized.connect(run_plugin)
except AttributeError:
# NOTE: This results in #314 so shouldn't really be relied on
# https://github.com/getpelican/pelican-plugins/issues/314
signals.content_object_init.connect(share_post)