From e9a0717aeab4a9fb8eb59795a19a043b1e88ef55 Mon Sep 17 00:00:00 2001 From: Nico Di Rocco Date: Wed, 22 Aug 2012 23:05:07 +0200 Subject: [PATCH 1/3] Added a new signal `finalized` that is dispatched when pelican finishes. This signal can then be used for post processing. --- docs/plugins.rst | 1 + pelican/__init__.py | 2 ++ pelican/signals.py | 1 + 3 files changed, 4 insertions(+) diff --git a/docs/plugins.rst b/docs/plugins.rst index 53858668..bce17ddb 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -57,6 +57,7 @@ Here is the list of currently implemented signals: Signal Arguments Description ========================= ============================ ========================================= initialized pelican object +finalized pelican object article_generate_context article_generator, metadata article_generator_init article_generator invoked in the ArticlesGenerator.__init__ pages_generate_context pages_generator, metadata diff --git a/pelican/__init__.py b/pelican/__init__.py index ba48c4c7..803e289a 100644 --- a/pelican/__init__.py +++ b/pelican/__init__.py @@ -178,6 +178,8 @@ class Pelican(object): if hasattr(p, 'generate_output'): p.generate_output(writer) + signals.finalized.send(self) + def get_generator_classes(self): generators = [StaticGenerator, ArticlesGenerator, PagesGenerator] if self.settings['PDF_GENERATOR']: diff --git a/pelican/signals.py b/pelican/signals.py index 4d9ab512..ddd59621 100644 --- a/pelican/signals.py +++ b/pelican/signals.py @@ -1,6 +1,7 @@ from blinker import signal initialized = signal('pelican_initialized') +finalized = signal('pelican_finalized') article_generate_context = signal('article_generate_context') article_generator_init = signal('article_generator_init') pages_generate_context = signal('pages_generate_context') From c1b0e83a44676d1a13aaf394f6279df2db06cc7f Mon Sep 17 00:00:00 2001 From: Nico Di Rocco Date: Fri, 31 Aug 2012 22:17:19 +0200 Subject: [PATCH 2/3] Added description for the finalized signal in the docs --- docs/plugins.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/plugins.rst b/docs/plugins.rst index bce17ddb..f95cb684 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -53,16 +53,16 @@ List of signals Here is the list of currently implemented signals: -========================= ============================ ========================================= +========================= ============================ =========================================================================== Signal Arguments Description -========================= ============================ ========================================= +========================= ============================ =========================================================================== initialized pelican object -finalized pelican object +finalized pelican object invoked after all the generators are executed and just before pelican exits article_generate_context article_generator, metadata article_generator_init article_generator invoked in the ArticlesGenerator.__init__ 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! From ff3c12fd711f3dc75b67f910a8c0900510709ea0 Mon Sep 17 00:00:00 2001 From: Nico Di Rocco Date: Fri, 7 Sep 2012 08:56:33 +0200 Subject: [PATCH 3/3] Added possible uses for the finalized signal to the docs --- docs/plugins.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/plugins.rst b/docs/plugins.rst index a90d077e..36e89f3d 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -58,6 +58,9 @@ 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,