Skip to main content

Add jinja-evaluated types to Lektor

Project description

Lektor Expression Type Plugin

PyPI version PyPI Supported Python Versions GitHub license GitHub Actions (Tests)

Add jinja-evaluated types, expression and format_expression, to Lektor.

These allow one to define data model fields whose values are Jinja2 expressions.

The Types

Both the expression and format_expression types are evaluated by the jinja template engine.

expression

The expression type is evaluated as a Jinja2 expression.

An example value for this type might be:

this.children.order_by('-pub_date').limit(4)

This would evaluate to a Lektor Query instance.

format_expression

The format_expression type is evaluated as a Jinja2 template. It will always evaluate to a string.

An example value for this type might be:

The blog contains {{ site.get('/blog').count() }} pages.

Installation

Add lektor-expression-type to your project from command line:

lektor plugins add lektor-expression-type

See the Lektor plugin documentation for more information.

Motivating Example

Suppose you want to create an Index data model, for pages which will be used display lists of other pages on your site. You could create a model definition like this (called, perhaps, models/index.ini):

[model]
name = Index Page
label = Index: {{ this.title}}

[fields.title]
label = Title
type = string

[fields.items]
label = Items
type = expression
description = Pages to list on this page

In a particular index page which uses this model, you might set the items field to site.get('/projects').filter(F.tag == 'interesting'), then in the page template (e.g. in templates/index.html) one could reference the items field (e.g. {% for page in this.items %}) to determine which pages to display on the page.

Author

Jeff Dairiki dairiki@dairiki.org

Changelog

0.1 — 2021-02-05

No code changes.

Update development status classifier to "stable".

Fixes

  • Include the correct LICENSE file.

0.1b1 — 2020-05-05

Initial release.

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

lektor-expression-type-0.1.tar.gz (8.2 kB view hashes)

Uploaded Source

Built Distribution

lektor_expression_type-0.1-py2.py3-none-any.whl (4.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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