Add a new signal article_generator_finalized, called at the end of ArticleGenerator.generate_context

This commit is contained in:
FELD Boris 2012-10-13 19:17:16 +02:00
commit 22f3c40385
3 changed files with 20 additions and 16 deletions

View file

@ -54,22 +54,23 @@ List of signals
Here is the list of currently implemented signals: Here is the list of currently implemented signals:
========================= ============================ =========================================================================== ============================= ============================ ===========================================================================
Signal Arguments Description Signal Arguments Description
========================= ============================ =========================================================================== ============================= ============================ ===========================================================================
initialized pelican object initialized pelican object
finalized pelican object invoked after all the generators are executed and just before pelican exits finalized pelican object invoked after all the generators are executed and just before pelican exits
usefull for custom post processing actions, such as: usefull for custom post processing actions, such as:
- minifying js/css assets. - minifying js/css assets.
- notify/ping search engines with an updated sitemap. - notify/ping search engines with an updated sitemap.
article_generate_context article_generator, metadata article_generate_context article_generator, metadata
article_generator_init article_generator invoked in the ArticlesGenerator.__init__ article_generator_init article_generator invoked in the ArticlesGenerator.__init__
get_generators generators invoked in Pelican.get_generator_classes, article_generator_finalized article_generator invoked at the end of ArticlesGenerator.generate_context
can return a Generator, or several get_generators generators invoked in Pelican.get_generator_classes,
generator in a tuple or in a list. can return a Generator, or several
pages_generate_context pages_generator, metadata generator in a tuple or in a list.
pages_generator_init pages_generator invoked in the PagesGenerator.__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 The list is currently small, don't hesitate to add signals and make a pull
request if you need them! request if you need them!

View file

@ -360,6 +360,8 @@ class ArticlesGenerator(Generator):
self._update_context(('articles', 'dates', 'tags', 'categories', self._update_context(('articles', 'dates', 'tags', 'categories',
'tag_cloud', 'authors', 'related_posts')) 'tag_cloud', 'authors', 'related_posts'))
signals.article_generator_finalized.send(self)
def generate_output(self, writer): def generate_output(self, writer):
self.generate_feeds(writer) self.generate_feeds(writer)
self.generate_pages(writer) self.generate_pages(writer)

View file

@ -4,6 +4,7 @@ initialized = signal('pelican_initialized')
finalized = signal('pelican_finalized') finalized = signal('pelican_finalized')
article_generate_context = signal('article_generate_context') article_generate_context = signal('article_generate_context')
article_generator_init = signal('article_generator_init') article_generator_init = signal('article_generator_init')
article_generator_finalized = signal('article_generate_finalized')
get_generators = signal('get_generators') get_generators = signal('get_generators')
pages_generate_context = signal('pages_generate_context') pages_generate_context = signal('pages_generate_context')
pages_generator_init = signal('pages_generator_init') pages_generator_init = signal('pages_generator_init')