小部件渲染系统的即将停用

大家好!作为我们摆脱传统“widget”(小部件)渲染系统的最后一步,我们将弃用 Discourse 中对小部件的使用,并很快将其完全停用。

时间表

这些是估计值,可能会有变动

2025 年 7 月:

  • :white_check_mark: 在核心代码中添加弃用警告,并添加一个实验性的站点设置来停用它们
  • :white_check_mark: 在 Meta 上发布公告

2025 年 8 月

  • :white_check_mark: 将官方插件和主题组件升级到使用 Glimmer Components(Glimmer 组件)。
  • :white_check_mark: 在停用小部件的情况下运行 Meta。
  • :white_check_mark: 启用带有管理员警告横幅的弃用消息。

2025 年第三季度:

  • 第三方插件和主题需要升级。

2025 年第四季度:

  • :white_check_mark: 小部件渲染系统将默认禁用,使用 deactivate_widgets_rendering: true。届时将有一小段时间可以手动重新启用。

  • :white_check_mark: 移除旧代码并停用小部件渲染系统

:police_car_light: 不兼容的插件和主题在此之后将无法正常工作。

这对您意味着什么?

如果您的任何插件或主题使用了“小部件”API,您需要在 2025 年第四季度截止日期之前将它们更新为使用较新的 API 或 Glimmer Components。

我安装了自定义插件或主题。我需要更新它们吗?

如果您的插件或主题使用了以下任何内容,则需要进行更新:

  • createWidget
  • decorateWidgetchangeWidgetSettingreopenWidgetattachWidgetAction
  • MountWidget 组件

:bulb: 专业提示: 如果您的扩展使用了任何此类自定义,您将在控制台中看到一个警告,指明需要升级哪个插件或组件。

:warning: 重要提示: 如果您的实例中使用了多个主题,请务必检查所有主题,因为警告只会出现在活跃的插件和当前使用的主题及主题组件上。

弃用 ID 是:discourse.widgets-end-of-life

这与最近的帖子流(post-stream)现代化有何关系?

帖子流是 Discourse 中最后一个仍在使用小部件渲染系统的主要部分。随着它的现代化,我们现在可以继续完全淘汰小部件系统。请查看升级指南以获取有关这些更改的更多详细信息。

如何升级?

如果您使用第三方插件或主题: 检查作者是否已发布与新系统兼容的升级版本。

如果您是插件/主题作者:

  • 用 Glimmer Components 替换您的自定义小部件
  • 使用 plugin-outlet 连接器将它们插入到 UI 中

请查看我们的开发者指南以获取有关进行这些更新的更多信息。

8 个赞

下次更新您的 Discourse 安装时,小部件渲染系统将被禁用,任何基于小部件的自定义将不再被渲染。

目前,在不兼容的站点上,管理员可以通过修改以下设置的值来重新启用旧的行为:

  • deactivate_widgets_rendering

这是在从 Discourse 代码库中删除旧代码之前的最后阶段,预计将在大约一个月后进行。之后,将无法再重新启用小部件。

6 个赞

移除 Discourse 中小部件系统的 PR 已于昨天合并。

1 个赞