Merge pull request #1214 from hrbonz/article_generator_write_article

Add a signal on article writing
This commit is contained in:
Justin Mayer 2014-01-05 09:03:09 -08:00
commit b25001333d
3 changed files with 27 additions and 24 deletions

View file

@ -62,9 +62,9 @@ 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:
@ -77,6 +77,7 @@ article_generator_preread article_generator invoked before
use if code needs to do something before every article is parsed use if code needs to do something before every article is parsed
article_generator_init article_generator invoked in the ArticlesGenerator.__init__ article_generator_init article_generator invoked in the ArticlesGenerator.__init__
article_generator_finalized article_generator invoked at the end of ArticlesGenerator.generate_context article_generator_finalized article_generator invoked at the end of ArticlesGenerator.generate_context
article_generator_write_article article_generator, content invoked before writing each article, the article is passed as content
get_generators generators invoked in Pelican.get_generator_classes, get_generators generators invoked in Pelican.get_generator_classes,
can return a Generator, or several can return a Generator, or several
generator in a tuple or in a list. generator in a tuple or in a list.
@ -85,7 +86,7 @@ page_generator_init page_generator invoked in the P
page_generator_finalized page_generator invoked at the end of PagesGenerator.generate_context page_generator_finalized page_generator invoked at the end of PagesGenerator.generate_context
content_object_init content_object invoked at the end of Content.__init__ (see note below) content_object_init content_object invoked at the end of Content.__init__ (see note below)
content_written path, context invoked each time a content file is written. content_written path, context invoked each time a content file is written.
============================= ============================ =========================================================================== ================================= ============================ ===========================================================================
The list is currently small, so don't hesitate to add signals and make a pull The list is currently small, so don't hesitate to add signals and make a pull
request if you need them! request if you need them!

View file

@ -265,6 +265,7 @@ class ArticlesGenerator(Generator):
def generate_articles(self, write): def generate_articles(self, write):
"""Generate the articles.""" """Generate the articles."""
for article in chain(self.translations, self.articles): for article in chain(self.translations, self.articles):
signals.article_generator_write_article.send(self, content=article)
write(article.save_as, self.get_template(article.template), write(article.save_as, self.get_template(article.template),
self.context, article=article, category=article.category, self.context, article=article, category=article.category,
override_output=hasattr(article, 'override_save_as')) override_output=hasattr(article, 'override_save_as'))

View file

@ -18,6 +18,7 @@ generator_init = signal('generator_init')
article_generator_init = signal('article_generator_init') article_generator_init = signal('article_generator_init')
article_generator_finalized = signal('article_generator_finalized') article_generator_finalized = signal('article_generator_finalized')
article_generator_write_article = signal('article_generator_write_article')
page_generator_init = signal('page_generator_init') page_generator_init = signal('page_generator_init')
page_generator_finalized = signal('page_generator_finalized') page_generator_finalized = signal('page_generator_finalized')