Skip to main content

Pelican plugin for applying useful Jinja filters in theme templates

Project description

Build Status PyPI Version

Jinja Filters is a plugin for Pelican, a static site generator written in Python.

Jinja Filters provides a selection of functions (called filters) for templates to use when building your website. They are packaged for Pelican, but may prove useful for other projects that make use of Jinja2.

Installation

The easiest way to install Jinja Filters is through the use of Pip. This will also install the required dependencies (currently pelican and titlecase) automatically.

pip install pelican-jinja-filters

As Jinja Filters is a namespace plugin, assuming you are using Pelican 4.5 (or newer) and only other namespace plugins, Jinja Filters will be automatically be loaded by Pelican. And that’s it!

If you are using an older version of Pelican, or non-namespace plugins, you may need to add Jinja Filters to your pelicanconf.py:

PLUGINS = [
    # others...
    "pelican.plugins.jinja_filters",
]

The filters are now available for use in your templates.

Jinja Filters supports Pelican from version 4.5 on.

Usage

At present, the plugin includes the following filters:

  • datetime – allows you to change to format displayed for a datetime object. Optionally supply a datetime format string to get a custom format.

  • article_date – a specialized version of datetime that returns datetimes as wanted for article dates; specifically Friday, November 4, 2020.

  • breaking_spaces – replaces non-breaking spaces (HTML code  ) with normal spaces.

  • titlecase – Titlecases the supplied string.

  • datetime_from_period – take the period provided on period archive pages, and turn it into a proper datetime.datetime object (likely to feed to another filter)

  • merge_date_url – given a datetime (on the left) and a supplied URL, “apply” the date to it. Envisioned in particular for YEAR_ARCHIVE_URL, MONTH_ARCHIVE_URL, and DAY_ARCHIVE_URL.

For example, within your theme templates, you might have code like:

<span class="published">
    Article Published {{ article.date | article_date }}
</span>

gives:

Article Published Friday, November 4, 2020

Or with your own date format:

<span class="published">
    Article Published {{ article.date | datetime('%b %d, %Y') }}
</span>

gives:

Article Published Nov 04, 2020

Filters can also be chained, or applied in sequence. For example to remove breaking spaces and then titlecase a category name, you might have code like:

<a href="{{ SITEURL -}} / {{- article.category.url }}">
    {{ article.category | breaking_spaces | titlecase }}
</a>

On a Monthly Archive page, you might have the following to link “up” to the Yearly Archive page:

<a href="{{ SITEURL -}} /
         {{- period | datetime_from_period | merge_date_url(YEAR_ARCHIVE_URL) }}">
    {{ period | datetime_from_period | datetime('%Y') }}
</a>

which might give:

<a href="https://blog.minchin.ca/posts/2017/>2017</a>

Contributing

Contributions are most welcome! See Contributing for more details.

To set up a development environment:

  1. Fork the project on GitHub, and then clone your fork.

  2. Set up and activate a virtual environment.

  3. Have invoke on your system path or install it into your virtual environment.

  4. Run invoke setup.

For more details, see Contributing.

License

Jinja Filters is under the MIT License. See attached License.txt for full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pelican-jinja-filters-2.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pelican_jinja_filters-2.1.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file pelican-jinja-filters-2.1.0.tar.gz.

File metadata

  • Download URL: pelican-jinja-filters-2.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.6 CPython/3.7.10 Linux/5.4.0-1046-azure

File hashes

Hashes for pelican-jinja-filters-2.1.0.tar.gz
Algorithm Hash digest
SHA256 c8bd36cafa204851e041b9d3fde7c6c6a0390f252f2e24e58d5858ec889ca7dc
MD5 995d822f8be1566d9a82d44857c8819b
BLAKE2b-256 e1c79684b3561dae8a7c619257e4d6711a1990e06bb2b7fd9b57cb1384dc1775

See more details on using hashes here.

File details

Details for the file pelican_jinja_filters-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pelican_jinja_filters-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7dc0aa94405b6bd184cb3250058b9b1f57aa66c5c7181e8760f34b6eb7e810f7
MD5 4b6050d599787f8f0cde128d4f9f9cc7
BLAKE2b-256 e49e8ffdca249eb5347c24e6155c744a9cb73742a4004805e147980edf00406f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page