Skip to main content

Ensure that your Pelican plugin is called at the right time, every time.


Love Pelican but hate that your finalization plugin isn’t always called in the right order? Don’t let your plugin get lost in the shuffle of the finalized signal! pelican-granular-signals adds new finalization signals that guarantee your plugin is called at the right time, every time.

New Pelican signals

When pelican-granular-signals is installed, the following signals will be called immediately after the finalized signal:

  • sitemap

  • optimize

  • minify

  • compress

  • deploy

Each signal will be sent with the same argument that is sent to the finalized signal.

Connecting to granular signals

Your plugin must register with blinker directly. Here’s a complete example:

import blinker

import pelican.plugins.granular_signals


def register():
    # This line is highly recommended so users
    # don't have to update their configurations.
    pelican.plugins.granular_signals.register()

    # Connect your awesome plugin to a granular signal.
    blinker.signal("deploy").connect(deploy_site)


# -----------------------------------------------------
# Put your awesome plugin code here.

import subprocess

def deploy_site(instance):
    subprocess.run(instance.settings["DEPLOY_COMMAND"])

Helping users out

To make life easier for users, consider taking these two steps:

  1. List pelican-granular-signals as a dependency so it will be automatically installed with your plugin.

  2. When Pelican calls your plugin’s register() function, call pelican.plugins.granular_signals.register().

Pelican 4.5 introduced a new, automatic plugin loading feature and pelican-granular-signals is designed to work with this feature! Unfortunately, if a user specifies which plugins to load in their configuration file then automatic plugin loading will be disabled. It is therefore recommended that you call pelican.plugins.granular_signals.register() in your plugin’s register() function.

pelican.plugins.granular_signals.register() can be called multiple times without creating any problems.

Release files for pelican-granular-signals 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pelican-granular-signals 1.2.0
File Size Uploaded
pelican_granular_signals-1.2.0.tar.gz 3.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pelican-granular-signals 1.2.0
File Interpreter ABI Platform
pelican_granular_signals-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 7.2 kB

Release files / pelican_granular_signals-1.2.0.tar.gz

Download URL pelican_granular_signals-1.2.0.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6b087d491fe8499937c1b291c3457523d9267382e8e9632102367480948403e0
BLAKE2b-256 checksum
How to use checksums
ca4941dfe41f7196378861b5d8b96d7827ccaabca058320994983cd844ba4e02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release files / pelican_granular_signals-1.2.0-py3-none-any.whl

Download URL pelican_granular_signals-1.2.0-py3-none-any.whl
Size 3.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f45efc040481a33cf9acdeac7949eddad4923a67fe52b4668bab9f534ff7b72
BLAKE2b-256 checksum
How to use checksums
6b307d1e06d2736749b8dbc7cd8e34aced8a324d13b45f7ca48d74ca45e57693
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.6

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page