Plugin – lektor-expression-type 0.1

Add jinja-evaluated types to Lektor

Project links

GitHub Statistics

Meta

Version: 0.1

Author: Jeff Dairiki

Tags

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.

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.

Comments