1
0
Fork 0
forked from github/pelican

Merge pull request #1616 from kernc/all_generators_finalized

Add signal: all_generators_finalized (see getpelican/pelican-plugins#314)
This commit is contained in:
Justin Mayer 2015-02-11 10:48:51 -08:00
commit 9152e021e2
3 changed files with 15 additions and 0 deletions

View file

@ -85,6 +85,7 @@ finalized pelican object invoked after
- minifying js/css assets.
- notify/ping search engines with an updated sitemap.
generator_init generator invoked in the Generator.__init__
all_generators_finalized generators invoked after all the generators are executed and before writing output
readers_init readers invoked in the Readers.__init__
article_generator_context article_generator, metadata
article_generator_preread article_generator invoked before a article is read in ArticlesGenerator.generate_context;
@ -138,6 +139,15 @@ request if you need them!
def register():
signals.content_object_init.connect(test, sender=contents.Article)
.. warning::
Avoid ``content_object_init`` signal if you intend to read ``summary``
or ``content`` properties of the content object. That combination can
result in unresolved links when :ref:`ref-linking-to-internal-content`
(see `pelican-plugins bug #314`_). Use ``_summary`` and ``_content``
properties instead, or, alternatively, run your plugin at a later
stage (e.g. ``all_generators_finalized``).
.. note::
After Pelican 3.2, signal names were standardized. Older plugins
@ -222,3 +232,5 @@ Adding a new generator is also really easy. You might want to have a look at
return MyGenerator
signals.get_generators.connect(get_generators)
.. _pelican-plugins bug #314: https://github.com/getpelican/pelican-plugins/issues/314

View file

@ -168,6 +168,8 @@ class Pelican(object):
if hasattr(p, 'generate_context'):
p.generate_context()
signals.all_generators_finalized.send(generators)
writer = self.get_writer()
for p in generators:

View file

@ -6,6 +6,7 @@ from blinker import signal
initialized = signal('pelican_initialized')
get_generators = signal('get_generators')
all_generators_finalized = signal('all_generators_finalized')
get_writer = signal('get_writer')
finalized = signal('pelican_finalized')