Blurry
Menu

Plugins: write an Jinja extension plugin

Blurry makes it easy to add custom Jinja extensions to your site. What is a Jinja extension? From the Jinja docs:

Jinja supports extensions that can add extra filters, tests, globals or even extend the parser. The main motivation of extensions is to move often used code into a reusable class like adding support for internationalization.

With custom extensions you can add custom tags to Jinja, like Blurry's {% blurry_image %} tag.

Example: {% blurry_image %}

This tag finds the optimized version of an image at the specified URL, and optionally of the specified size. You can find it in Blurry's source code in blurry/plugins/jinja_plugins/blurry_image_extension.py.

Under the hood the extension uses jinja2-simple-tags to simplify the process of writing a custom extension.

To use a custom Jinja extension you've developed, add the appropriate plugin syntax to your project's pyproject.toml file:

[tool.poetry.plugins."blurry.jinja_extensions"]
stars = "{{ yourproject.your_extension_file }}:YourExtension"