Skip to main content

Module feed

Module feed 

Source
Expand description

RSS 2.0 与 JSON Feed 1.1 订阅端点(server-only)。 RSS 2.0 与 JSON Feed 1.1 订阅端点。

提供两个无中间件的公开读端点,挂载在 static_routes 上:

  • GET /feed.xml — RSS 2.0(application/rss+xml
  • GET /feed.json — JSON Feed 1.1(application/feed+json

输出最近 [FEED_ITEM_LIMIT] 篇已发布文章(含保存时已渲染的全文 content_html), 数据经 moka 单键缓存(CacheKey::Feed,TTL 600s),文章写路径统一失效。 渲染函数均为纯函数并接受 now/base 参数注入,便于单元测试固定输出。

仅在 server feature 启用时编译。

Constants§

CHANNEL_DESCRIPTION 🔒
Feed channel 描述。与首页 HomeInfo 副标题保持一致。
CHANNEL_TITLE 🔒
Feed channel 标题。站点无标题配置,与首页 HomeInfo 硬编码保持一致。
FEED_CACHE_CONTROL 🔒
Feed 响应缓存头,与缓存层 TTL(600s)对齐。
FEED_ITEM_LIMIT 🔒
Feed 输出文章条数上限。
FEED_LANGUAGE 🔒
Feed 语言。
JSON_CONTENT_TYPE 🔒
JSON Feed Content-Type。
RSS_CONTENT_TYPE 🔒
RSS Content-Type(标准注册类型,带 charset 便于阅读器正确解码中文)。

Functions§

escape_xml 🔒
XML 文本转义:& < > " ' 五个字符。
json_feed
GET /feed.json — JSON Feed 1.1 订阅源。
load_feed_items 🔒
加载 Feed 条目:缓存命中直接返回,miss 则查询 DB 并回填缓存。
render_json 🔒
渲染 JSON Feed 1.1 文档(serde_json 直接序列化,零新依赖)。
render_rss 🔒
渲染 RSS 2.0 文档。now 注入以便测试固定 lastBuildDate
row_to_feed_item 🔒
将数据库行转换为 Feed 条目。
rss_feed
GET /feed.xml — RSS 2.0 订阅源。
site_base_url 🔒
推导站点绝对 URL 基址(无尾部斜杠)。