Lektor插件,用于生成Atom订阅源。
项目描述
Lektor Atom插件
为基于Lektor的网站构建一个或多个Atom XML订阅源。
受Armin Ronacher为Lektor官方博客编写的atom-feed-support插件的启发。
安装
从命令行将lektor-atom添加到您的项目中
lektor plugins add lektor-atom
有关安装插件的更多说明,请参阅Lektor文档。
配置
以下是一个基本配置
[feed]
name = My Site's Blog
source_path = /blog
url_path = /feed.xml
对于您想要发布的每个源,请向 configs/atom.ini
中添加一个部分。例如,一个包含所有最新帖子的博客源和一个关于咖啡的最新帖子的源。
[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
部分名称,如 blog
和 coffee
,仅用作内部标识符。
选项
选项 | 默认值 | 描述 |
---|---|---|
source_path | / | 在内容目录中找到项目父源的位置 |
name | 配置部分名称 | 源名称 |
filename | feed.xml | 生成的 Atom 源文件名称 |
url_path | source_path + filename | 您网站上源件的 URL |
blog_author_field | 作者 | 源作者字段名称 |
blog_summary_field | 摘要 | 源摘要字段名称 |
items | source_path 的子项 | 查询表达式:例如 site.query('/').filter(F.type == 'post') |
limit | 50 | 包含多少个最新项 |
item_title_field | 标题 | 项标题字段名称 |
item_body_field | 正文 | 项内容正文字段名称 |
item_author_field | 作者 | 项作者字段名称 |
item_date_field | pub_date | 项发布日期字段名称 |
item_model | None | 根据项的模型名称筛选 items |
针对您的模型自定义插件
使用字段选项来告诉 lektor-atom 如何读取您的项。例如,如果您的网站模型是
[model]
name = Blog
[fields.writer]
type = string
[fields.short_description]
type = string
那么请将其添加到 atom.ini 中
[main]
blog_author_field = writer
blog_summary_field = short_description
查看 tests/demo-project/configs/atom.ini 以获取完整示例。
筛选项
默认情况下,lektor-atom 获取 source_path
中的源,并将所有子项包含在源中。如果您设置了 item_model
,则 lektor-atom 仅包含具有该数据模型的子项。
将 items
设置为任何查询表达式以覆盖默认值。如果还指定了 items_model
,则 lektor-atom 将它作为筛选器应用于 items
。
在模板中使用
您可以在模板中链接到特定的源。如果您的 atom.ini
包含如下所示的源
[main]
source_path = /blog
在模板中如下链接到源
{{ '/blog@atom/main'|url }}