Announcing pelican-granular-signals
Posted 9 August 2021 in pelican, plugin, python, and websiteI'm pleased to announce the release of pelican-granular-signals, the Pelican plugin that guarantees your awesome plugin will get called at the right time, every time.
This plugin exists because of two issues with the Pelican plugin architecture:
- Pelican depends on blinker, which does not guarantee the order in which signals are sent.
- Pelican doesn't have fine-grained website finalization signals.
This means many plugins have to crowd around the finalized signal like a bunch of kids at the arcade lining up quarters to be the next challenger at the lone Street Fighter Ⅱ machine on a Friday night.
Similes aside, your plugins are forced into a situation where the content may or may not be minified prior to precompression. That's where pelican-granular-signals comes in: it adds several new, granular signals that will be sent after the finalized signal. As of version 1.0.0, the new signals are:
- sitemap
- optimize
- minify
- compress
- deploy
Documentation is available in the README. Feel free to suggest additional signals or features!