From 22f3c40385366efa27edbaed9886aeaaf9a9dde5 Mon Sep 17 00:00:00 2001 From: FELD Boris Date: Sat, 13 Oct 2012 19:17:16 +0200 Subject: [PATCH] Add a new signal article_generator_finalized, called at the end of ArticleGenerator.generate_context --- docs/plugins.rst | 33 +++++++++++++++++---------------- pelican/generators.py | 2 ++ pelican/signals.py | 1 + 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/docs/plugins.rst b/docs/plugins.rst index 00e8ba04..c275c57c 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -54,22 +54,23 @@ List of signals Here is the list of currently implemented signals: -========================= ============================ =========================================================================== -Signal Arguments Description -========================= ============================ =========================================================================== -initialized pelican object -finalized pelican object invoked after all the generators are executed and just before pelican exits - usefull for custom post processing actions, such as: - - minifying js/css assets. - - notify/ping search engines with an updated sitemap. -article_generate_context article_generator, metadata -article_generator_init article_generator invoked in the ArticlesGenerator.__init__ -get_generators generators invoked in Pelican.get_generator_classes, - can return a Generator, or several - generator in a tuple or in a list. -pages_generate_context pages_generator, metadata -pages_generator_init pages_generator invoked in the PagesGenerator.__init__ -========================= ============================ =========================================================================== +============================= ============================ =========================================================================== +Signal Arguments Description +============================= ============================ =========================================================================== +initialized pelican object +finalized pelican object invoked after all the generators are executed and just before pelican exits + usefull for custom post processing actions, such as: + - minifying js/css assets. + - notify/ping search engines with an updated sitemap. +article_generate_context article_generator, metadata +article_generator_init article_generator invoked in the ArticlesGenerator.__init__ +article_generator_finalized article_generator invoked at the end of ArticlesGenerator.generate_context +get_generators generators invoked in Pelican.get_generator_classes, + can return a Generator, or several + generator in a tuple or in a list. +pages_generate_context pages_generator, metadata +pages_generator_init pages_generator invoked in the PagesGenerator.__init__ +============================= ============================ =========================================================================== The list is currently small, don't hesitate to add signals and make a pull request if you need them! diff --git a/pelican/generators.py b/pelican/generators.py index 461c8b46..ff5ebdba 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -360,6 +360,8 @@ class ArticlesGenerator(Generator): self._update_context(('articles', 'dates', 'tags', 'categories', 'tag_cloud', 'authors', 'related_posts')) + signals.article_generator_finalized.send(self) + def generate_output(self, writer): self.generate_feeds(writer) self.generate_pages(writer) diff --git a/pelican/signals.py b/pelican/signals.py index f3e16e76..73e718b5 100644 --- a/pelican/signals.py +++ b/pelican/signals.py @@ -4,6 +4,7 @@ initialized = signal('pelican_initialized') finalized = signal('pelican_finalized') article_generate_context = signal('article_generate_context') article_generator_init = signal('article_generator_init') +article_generator_finalized = signal('article_generate_finalized') get_generators = signal('get_generators') pages_generate_context = signal('pages_generate_context') pages_generator_init = signal('pages_generator_init')