From 22762f2c1630d40b95e97d2a2afd2b1c7d2dfe64 Mon Sep 17 00:00:00 2001 From: Ondrej Grover Date: Fri, 7 Feb 2014 08:34:27 +0100 Subject: [PATCH] add signal article_generator_pretaxonomy invoked before categories and tags lists are created useful when e.g. modifying the list of articles to be generated so that removed articles are not leaked in categories or tags --- docs/plugins.rst | 3 +++ pelican/generators.py | 2 ++ pelican/signals.py | 1 + 3 files changed, 6 insertions(+) diff --git a/docs/plugins.rst b/docs/plugins.rst index b38e036f..c03b1251 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -76,6 +76,9 @@ article_generator_context article_generator, metadata article_generator_preread article_generator invoked before a article is read in ArticlesGenerator.generate_context; use if code needs to do something before every article is parsed article_generator_init article_generator invoked in the ArticlesGenerator.__init__ +article_generator_pretaxonomy article_generator invoked before categories and tags lists are created + useful when e.g. modifying the list of articles to be generated + so that removed articles are not leaked in categories or tags 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 article_writer_finalized article_generator, writer invoked after all articles and related pages have been written, but before diff --git a/pelican/generators.py b/pelican/generators.py index 5a560b05..758747e0 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -421,6 +421,8 @@ class ArticlesGenerator(Generator): self.articles, self.translations = process_translations(all_articles) + signals.article_generator_pretaxonomy.send(self) + for article in self.articles: # only main articles are listed in categories and tags # not translations diff --git a/pelican/signals.py b/pelican/signals.py index 812dfbac..9eb907dc 100644 --- a/pelican/signals.py +++ b/pelican/signals.py @@ -17,6 +17,7 @@ readers_init = signal('readers_init') generator_init = signal('generator_init') article_generator_init = signal('article_generator_init') +article_generator_pretaxonomy = signal('article_generator_pretaxonomy') article_generator_finalized = signal('article_generator_finalized') article_generator_write_article = signal('article_generator_write_article') article_writer_finalized = signal('article_writer_finalized')