Skip to content

feat(rss): add option to disable full content - #4467

Merged
tangly1024 merged 3 commits into
notionnext-org:mainfrom
ZZHow1024:feat/rss-full-content-option
Aug 26, 2026
Merged

feat(rss): add option to disable full content#4467
tangly1024 merged 3 commits into
notionnext-org:mainfrom
ZZHow1024:feat/rss-full-content-option

Conversation

@ZZHow1024

Copy link
Copy Markdown
Contributor

Resolves #2419

已知问题

  1. RSS 当前默认返回文章完整正文

    • RSS 生成时会为每篇文章额外调用 getPostBlocks 获取 Notion Blocks
    • 随后还需要对文章内容进行格式化和服务端渲染,增加 RSS 生成时的数据请求和服务端开销
    • 部分用户只希望 RSS 提供文章摘要,并通过文章链接访问站点阅读全文,目前缺少相应配置项

解决方案

  1. 新增 RSS_FULL_CONTENT 配置项,用于控制 RSS 是否返回文章完整正文

    • RSS_FULL_CONTENT=true:保持现有行为,RSS 返回文章完整正文
    • RSS_FULL_CONTENT=false:RSS 的 content 仅返回 post.summary
    • 默认值为 true,保持向后兼容,不改变现有用户的默认行为
  2. 摘要模式下跳过文章正文获取和处理

    • createFeedContent 中提前返回 post.summary
    • 不再调用 getPostBlocks
    • 不再执行后续 Block 格式化及 Notion 页面服务端渲染
  3. 保持加密文章原有行为

    • 加密文章仍然只在 RSS 中返回摘要,避免正文内容泄露

改动收益

  1. 支持按需使用摘要 RSS

    • 用户可以选择仅通过 RSS 获取文章标题、摘要和链接
    • 阅读全文时仍可跳转至博客页面
  2. 减少 RSS 生成开销

    • RSS_FULL_CONTENT=false 时不再额外获取文章 Blocks
    • 减少 Notion 数据请求
    • 跳过正文格式化和服务端 HTML 渲染
  3. 保持向后兼容

    • RSS_FULL_CONTENT 默认值为 true
    • 未配置该选项的用户仍保持原来的全文 RSS 行为

具体改动

  1. blog.config.js

    • 新增 RSS_FULL_CONTENT 配置
    • 支持通过环境变量 RSS_FULL_CONTENT 配置
    • 默认值为 true
  2. lib/config.js

    • RSS_FULL_CONTENT 加入服务端配置处理
    • 支持通过 siteConfig 正确读取 NOTION_CONFIG / blog.config.js 中的配置
    • 支持字符串形式的 false 正确转换为布尔值
  3. lib/utils/rss.js

    • generateRss 中读取 RSS_FULL_CONTENT
    • 将配置传递给 createFeedContent
    • RSS_FULL_CONTENT=false 时直接返回 post.summary
    • 摘要模式下不再调用 getPostBlocks 及后续正文处理逻辑
    • 保持加密文章仅返回摘要的原有逻辑
  4. .env.example

    • 增加 RSS_FULL_CONTENT 环境变量示例
  5. docs/user-guide/reference/features.md

    • 增加 RSS_FULL_CONTENT 配置说明
  6. __tests__/lib/utils/rss.test.js

    • 新增 RSS_FULL_CONTENT=false 回归测试
    • 验证 RSS 的 descriptioncontent 均使用 post.summary
    • 验证摘要模式下不会调用 getPostBlocks
    • 验证不会继续执行 Block 适配和格式化逻辑

效果截图

RSS_FULL_CONTENT=true

保持原有全文 RSS 行为。

Full-content RSS screenshot

RSS_FULL_CONTENT=false

RSS 中 descriptioncontent:encoded 均只包含文章摘要,不再包含完整 Notion HTML 正文。

Summary-only RSS screenshot

测试确认

  • 本地 RSS 回归测试通过
  • 本地开发环境测试通过
  • 生产环境构建测试通过
  • RSS_FULL_CONTENT=true 时 RSS 正常输出完整正文
  • RSS_FULL_CONTENT=false 时 RSS 仅输出文章摘要
  • RSS_FULL_CONTENT=false 时不再获取文章 Blocks
  • 未配置 RSS_FULL_CONTENT 时保持原有全文 RSS 行为
  • 加密文章仍然只输出摘要
  • 环境变量配置正常工作

用户文档(docs/user-guide/ / docs/developer/

如果本 PR 新增或修改了站长会使用的功能、主题配置、环境变量、Notion Config 键、插件开关、部署步骤、默认行为或可见 UI 交互,请同步更新 docs/user-guide/docs/developer/ 中对应说明,并在下方勾选已完成项。

只有纯内部重构、测试、CI、依赖维护、拼写修正等不改变站长使用方式的改动,才可以勾选「不适用」。

  • 不适用(无文档改动)
  • 已按 维护工作流 自检
  • 路径符合 docs/user-guide/ 目录约定
  • 已更新 user-guide/README.md(新增/移动文章时)
  • 已更新 ARTICLE_INDEX.md(新 slug 或路径变更时)
  • 环境变量名与 conf/*.config.js 一致(若文档涉及配置)
  • 示例中无真实 Token、.env、私有 ID
  • 保留或更新了「原文链接」(若源自 docs.tangly1024.com)

文档说明:本 PR 与 RSS 功能配置配套,已在 docs/user-guide/reference/features.md 中补充 RSS_FULL_CONTENT 配置说明。

@ZZHow1024
ZZHow1024 requested a review from tangly1024 as a code owner August 25, 2026 15:34
@vercel

vercel Bot commented Aug 25, 2026

Copy link
Copy Markdown

@ZZHow1024 is attempting to deploy a commit to the tangly1024's projects Team on Vercel.

A member of the Team first needs to authorize it.

@netlify

netlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploy Preview for notionnext-netlify ready!

Name Link
🔨 Latest commit 41bec0c
🔍 Latest deploy log https://app.netlify.com/projects/notionnext-netlify/deploys/6a8e5d8f3c9f5e0008fb7b10
😎 Deploy Preview https://deploy-preview-4467--notionnext-netlify.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@tangly1024 tangly1024 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the RSS option change. The default remains full-content RSS, summary mode skips block fetching, and the focused regression plus core CI are green.

@tangly1024
tangly1024 merged commit ac6378f into notionnext-org:main Aug 26, 2026
7 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

建议增加RSS配置项-是否返回全文内容

2 participants