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

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file lektor-expression-type-0.1.tar.gz.

File metadata

  • Download URL: lektor-expression-type-0.1.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0+

File hashes

Hashes for lektor-expression-type-0.1.tar.gz
Algorithm Hash digest
SHA256 7022ce953ca23b09d168b1694fa00bc8ef3b00e131cacad11fe5046ae033c729
MD5 cfb9ff00dd563c77aed0c77f1c7e1a06
BLAKE2b-256 0e95b48a06f084967f220e0befa6048f18606b53edb7a69504a9c25502c86f8f

See more details on using hashes here.

File details

Details for the file lektor_expression_type-0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: lektor_expression_type-0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.0+

File hashes

Hashes for lektor_expression_type-0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e75316feaed2927de2367521094cb3f35cff4957560e7a96be10d08a3c5950f5
MD5 05c098758306ddb23a47d81ec1b1c8a9
BLAKE2b-256 7999a58e71ee23a9172af4dbd3e87c7738cd4e91501a1f1627720987b64cc0cd

See more details on using hashes here.

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