saquetim
(Sérgio Saquetim)
1
大家好!作为我们摆脱传统“widget”(小部件)渲染系统的最后一步,我们将弃用 Discourse 中对小部件的使用,并很快将其完全停用。
时间表
这些是估计值,可能会有变动
2025 年 7 月:
在核心代码中添加弃用警告,并添加一个实验性的站点设置来停用它们
在 Meta 上发布公告
2025 年 8 月
将官方插件和主题组件升级到使用 Glimmer Components(Glimmer 组件)。
在停用小部件的情况下运行 Meta。
启用带有管理员警告横幅的弃用消息。
2025 年第三季度:
2025 年第四季度:
不兼容的插件和主题在此之后将无法正常工作。
这对您意味着什么?
如果您的任何插件或主题使用了“小部件”API,您需要在 2025 年第四季度截止日期之前将它们更新为使用较新的 API 或 Glimmer Components。
我安装了自定义插件或主题。我需要更新它们吗?
如果您的插件或主题使用了以下任何内容,则需要进行更新:
createWidget
decorateWidget、changeWidgetSetting、reopenWidget 或 attachWidgetAction
MountWidget 组件
专业提示: 如果您的扩展使用了任何此类自定义,您将在控制台中看到一个警告,指明需要升级哪个插件或组件。
重要提示: 如果您的实例中使用了多个主题,请务必检查所有主题,因为警告只会出现在活跃的插件和当前使用的主题及主题组件上。
弃用 ID 是:discourse.widgets-end-of-life
这与最近的帖子流(post-stream)现代化有何关系?
帖子流是 Discourse 中最后一个仍在使用小部件渲染系统的主要部分。随着它的现代化,我们现在可以继续完全淘汰小部件系统。请查看升级指南以获取有关这些更改的更多详细信息。
如何升级?
如果您使用第三方插件或主题: 检查作者是否已发布与新系统兼容的升级版本。
如果您是插件/主题作者:
- 用 Glimmer Components 替换您的自定义小部件
- 使用
plugin-outlet 连接器将它们插入到 UI 中
请查看我们的开发者指南以获取有关进行这些更新的更多信息。
8 个赞
saquetim
(Sérgio Saquetim)
4
下次更新您的 Discourse 安装时,小部件渲染系统将被禁用,任何基于小部件的自定义将不再被渲染。
目前,在不兼容的站点上,管理员可以通过修改以下设置的值来重新启用旧的行为:
deactivate_widgets_rendering
这是在从 Discourse 代码库中删除旧代码之前的最后阶段,预计将在大约一个月后进行。之后,将无法再重新启用小部件。
6 个赞
saquetim
(Sérgio Saquetim)
5
移除 Discourse 中小部件系统的 PR 已于昨天合并。
4 个赞
loginerror
(Maciej Kuźmicz)
6
也许是个愚蠢的问题,但您认为 Discourse 是否可以提供一个 .md 文件,其中包含指南/帮助信息,可以将其提供给用户选择的命令行界面 (CLI) 代码工具,以帮助迁移插件组件?
只是一个想法 
1 个赞