Plugin – lektor-expression-type 0.1

Add jinja-evaluated types to Lektor

Project links

GitHub Statistics


Version: 0.1

Author: Jeff Dairiki


field type, Jinja, and setup-env

View all tags.

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.


The expression type is evaluated as a Jinja2 expression.

An example value for this type might be:


This would evaluate to a Lektor Query instance.


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.


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):

name = Index Page
label = Index: {{ this.title}}

label = Title
type = string

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.


Jeff Dairiki


0.1 — 2021-02-05

No code changes.

Update development status classifier to "stable".


  • Include the correct LICENSE file.

0.1b1 — 2020-05-05

Initial release.