Explorar el Código

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
Kernc hace 8 años
padre
commit
a4bd3cb192
Se han modificado 1 ficheros con 19 adiciones y 4 borrados
  1. 19 4
      share_post/share_post.py

+ 19 - 4
share_post/share_post.py

@@ -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 register():
-    signals.content_object_init.connect(share_post)
+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():
+    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)