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 基址(无尾部斜杠)。