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 }}
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 | |
|---|---|---|---|
| lektor-atom-0.4.0.tar.gz | 10.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lektor_atom-0.4.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
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
|