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

大家好!作为我们摆脱旧版“widget”渲染系统的最后一步,我们将弃用 Discourse 中的 widget 用法,并将在不久后完全停用它。

时间表

这些是估算值,可能会发生变化

2025 年 7 月:

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

2025 年 8 月

  • :white_check_mark: 升级官方插件和主题组件以使用 Glimmer Components。
  • :white_check_mark: 在停用 widget 的情况下运行 Meta。
  • :white_check_mark: 启用弃用消息,并显示管理员警告横幅。

2025 年第三季度:

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

2025 年第四季度:

  • :white_check_mark: widget 渲染系统将默认禁用,使用 deactivate_widgets_rendering: true。在短时间内可以手动重新启用。

  • 11 月 17 日:移除旧代码并停用 widget 渲染系统

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

这对您意味着什么?

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

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

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

  • createWidget
  • decorateWidget, changeWidgetSetting, reopenWidget, 或 attachWidgetAction
  • MountWidget 组件

:bulb: 专业提示: 如果您有使用这些自定义项的扩展,您将在控制台中看到警告,指明需要升级的插件或组件。

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

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

这与最近的帖子流现代化有何关系?

帖子流是 Discourse 中最后一个仍在使用 widget 渲染系统的主要部分。随着其现代化,我们现在可以着手完全淘汰 widget 系统。请查看升级指南了解这些更改的更多详细信息。

如何升级?

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

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

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

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

7 个赞

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

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

  • deactivate_widgets_rendering

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

5 个赞