Lektor Atom Plugin
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.