Skip to main content

Lektor Atom Plugin

Linux tests Code Style: Black Join the chat at https://gitter.im/lektor/lektor

Builds one or more Atom XML feeds for your Lektor-based site.

Inspired by the atom-feed-support plugin Armin Ronacher wrote for the Lektor official blog.

Installation

Add lektor-atom to your project from command line:

lektor plugins add lektor-atom

See the Lektor documentation for more instructions on installing plugins.

Configuration

Here is a basic configuration:

[feed]
name = My Site's Blog
source_path = /blog
url_path = /feed.xml

For each feed you want to publish, add a section to configs/atom.ini. For example, a blog with a feed of all recent posts, and a feed of recent posts about coffee:

[blog]
name = My Blog
source_path = /
url_path = /feed.xml
items = site.query('/').filter(F.type == 'post')
item_model = blog-post

[coffee]
name = My Blog: Articles About Coffee
source_path = /
url_path = /category/coffee/feed.xml
items = site.query('/blog').filter(F.categories.contains('coffee'))
item_model = blog-post

The section names, like blog and coffee, are just used as internal identifiers.

Options

Option Default Description
source_path / Where in the content directory to find items' parent source
name config section name Feed name
filename feed.xml Name of generated Atom feed file
url_path source_path + filename Feed's URL on your site
blog_author_field author Name of source's author field
blog_summary_field summary Name of source's summary field
items source_path's children A query expression: e.g. site.query('/').filter(F.type == 'post')
limit 50 How many recent items to include
item_title_field title Name of items' title field
item_body_field body Name of items' content body field
item_author_field author Name of items' author field
item_date_field pub_date Name of items' publication date field
item_model None Filters items on name of items' model

Customizing the plugin for your models

Use the field options to tell lektor-atom how to read your items. For example, if your site's model is:

[model]
name = Blog

[fields.writer]
type = string

[fields.short_description]
type = string

Then add to atom.ini:

[main]
blog_author_field = writer
blog_summary_field = short_description

See tests/demo-project/configs/atom.ini for a complete example.

Filtering items

By default, lektor-atom gets the source at source_path and includes all its children in the feed. If you set item_model, lektor-atom includes only the children with that data model.

Set items to any query expression to override the default. If items_model is also specified, lektor-atom applies it as a filter to items.

Use In Templates

You can link to a specific feed in your template. If your atom.ini contains a feed like this:

[main]
source_path = /blog

Link to the feed in a template like this:

{{ '/blog@atom/main'|url }}

Metadata

Release files for lektor-atom 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lektor-atom 0.4.0
File Size Uploaded Provenance Actions
lektor-atom-0.4.0.tar.gz 10.5 kB Without provenance Details for lektor-atom-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lektor-atom 0.4.0
File Interpreter ABI Platform Actions
lektor_atom-0.4.0-py2.py3-none-any.whl Python 2, Python 3 none any Details for lektor_atom-0.4.0-py2.py3-none-any.whl

Total release size: 15.6 kB

Release files / lektor-atom-0.4.0.tar.gz

Download URL lektor-atom-0.4.0.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
70f4e018278d68d07d48dc9b748cd012f1f558bef04d984c45d9a36e5a880176
BLAKE2b-256 checksum
How to use checksums
76472aa4b997009ee651081aa42ee34d67ee0cee876eddba1da7488f94c63779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

Release files / lektor_atom-0.4.0-py2.py3-none-any.whl

Download URL lektor_atom-0.4.0-py2.py3-none-any.whl
Size 5.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
0299ea8dcac0f2535e74e273cf939a8052f22dd9e99831b056a8cde9a8318563
BLAKE2b-256 checksum
How to use checksums
f0f5176cf3798e2dec47344372d8624a0e02267ae5ea78d4fa70e1751ebe28d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7

Security for lektor-atom 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page