Skip to content

文章页配置

约 797 字大约 3 分钟

2026-09-01

articleConfig.ts 控制文章详情页的三个尾部区块:最后更新提示、延伸阅读、分享海报。所有区块都遵循零额外负担原则——关闭后不渲染 DOM、不计算数据、不引入客户端脚本。

配置速览

src/config/articleConfig.ts
export const articleConfig = withUserConfig("article", {
  lastUpdated: {
    enable: true,
    minimumAgeDays: 90,
  },
  discovery: {
    enable: true,
    related: { enable: true, count: 3 },
    random: { enable: true, count: 2 },
  },
  share: {
    enable: true,
    includeCover: true,
  },
})

最后更新提示(lastUpdated)

lastUpdated: {
  enable: true,
  minimumAgeDays: 90,
},

文章的 updated 字段与发布日期相差达到 minimumAgeDays(按 UTC 日历日计算,达到该天数当天开始显示)后,文章页顶部出现「内容已有一段时间未更新」的提示。设为 0 表示只要填写了 updated 就立即显示。

提示的前提

提示只在文章 frontmatter 填写了 updated 字段时才有机会触发——未写 updated 的文章永不显示该提示。

延伸阅读(discovery)

文章尾部推荐区,分两组:

discovery: {
  enable: true,                       // 总开关,关闭后不计算、不渲染
  related: {
    enable: true,                     // 相关文章:至少共享一个标签或分类
    count: 3,
  },
  random: {
    enable: true,                     // 随机文章:按当前文章标识稳定抽样
    count: 2,
  },
},
规则
related只展示与当前文章共享至少一个标签或分类的文章
random从全站文章抽样;抽样基于文章标识稳定——同一构建内的结果不随刷新变化

数量上限为 6normalizeDiscoveryCount 会被截断到 0 ~ 6 并取整),两组数量之和大于 0 才会渲染区块。

关闭某一项related.enable: false(只留随机文章)或 random.enable: false(只留相关文章);全关则整个区块消失。

分享海报(share)

share: {
  enable: true,       // 文章尾部分享区块总开关
  includeCover: true, // 海报默认包含文章封面
},
  • 关闭后不渲染分享区块、不引入客户端水合
  • includeCover: true 时生成海报包含文章封面图;封面不可用时自动降级为无封面排版

单篇覆盖

以上是全站默认值。单篇文章层面的控制通过 frontmatter:

  • updated:控制最后更新提示的数据来源
  • comment: false:单篇关闭评论

实战示例

内容型博客(保持默认 + 更多相关推荐)

discovery: {
  enable: true,
  related: { enable: true, count: 4 },
  random: { enable: true, count: 2 },
},

随笔站(关闭时效提示与延伸阅读,只留分享)

lastUpdated: { enable: false, minimumAgeDays: 90 },
discovery: { enable: false },
share: { enable: true, includeCover: true },

隐私优先(全部关闭)

lastUpdated: { enable: false, minimumAgeDays: 90 },
discovery: { enable: false },
share: { enable: false, includeCover: false },

常见问题

延伸阅读出现的推荐不相关

随机文章每次刷新都变吗

更新提示为什么不出现