diff --git a/docs/plugins.rst b/docs/plugins.rst index 008e7551..10780b66 100644 --- a/docs/plugins.rst +++ b/docs/plugins.rst @@ -108,6 +108,7 @@ page_generator_preread page_generator invoked befor use if code needs to do something before every page is parsed. page_generator_init page_generator invoked in the PagesGenerator.__init__ page_generator_finalized page_generator invoked at the end of PagesGenerator.generate_context +page_generator_write_page page_generator, content invoked before writing each page, the page is passed as content page_writer_finalized page_generator, writer invoked after all pages have been written, but before the page generator is closed. static_generator_context static_generator, metadata diff --git a/pelican/generators.py b/pelican/generators.py index 65eb0519..c78a5484 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -657,6 +657,7 @@ class PagesGenerator(CachingGenerator): def generate_output(self, writer): for page in chain(self.translations, self.pages, self.hidden_translations, self.hidden_pages): + signals.page_generator_write_page.send(self, content=page) writer.write_file( page.save_as, self.get_template(page.template), self.context, page=page, diff --git a/pelican/signals.py b/pelican/signals.py index 0b10fdfa..18a745b4 100644 --- a/pelican/signals.py +++ b/pelican/signals.py @@ -27,6 +27,7 @@ article_writer_finalized = signal('article_writer_finalized') page_generator_init = signal('page_generator_init') page_generator_finalized = signal('page_generator_finalized') +page_generator_write_page = signal('page_generator_write_page') page_writer_finalized = signal('page_writer_finalized') static_generator_init = signal('static_generator_init')