Discourse 已迁移至 Dart Sass

我们刚刚对 Discourse 的 Sass 编译器流水线进行了重大升级,从已弃用的 libsass 迁移到了持续维护的 Dart Sass

这是一次无缝迁移,升级后您的网站不应发生任何变化。 在极少数情况下如果出现问题,请继续阅读。

致开发者 & 设计师的说明

在迁移过程中,我们审查了所有开源 插件主题,确保它们在新流水线中仍能正常工作,并对任何编译警告进行了修改/提交 PR 以进行处理。

版本详情

此次更新使我们

从:

  • sassc 2.0.1(2019 年 2 月)
  • libsass 3.5.2(2018 年 5 月)

变为:

  • dart-sass 1.58(2023 年 1 月)

此更新应用了以下弃用变更:

这些破坏性变更即将推出或最近已发布:

函数对允许的单位更加严格,自 Dart Sass 1.32.0 起生效。

带有无效组合器的选择器将无效,自 Dart Sass 1.54.0 起生效。

/ 正从除法运算变为列表分隔符,自 Dart Sass 1.33.0 起生效。

解析 @-moz-document 的特殊语法将无效,自 Dart Sass 1.7.2 起生效。

复合选择器无法被扩展,在 Dart Sass 1.0.0 和 Ruby Sass 4.0.0 中已如此规定。

常见问题解答

此次升级没有造成硬性破坏性变更,因此 99% 的主题都能正常工作。

如果您在未使用任何自定义主题的情况下运行 Discourse,则没有任何变化。下次您升级(或由您的托管公司升级)时,这将在后台自动完成。

如果您使用的是 CDCK 托管服务,并且使用了我们为您开发的主题,我们已经使其与 Dart Sass 兼容。

如果您使用的是 official Customization > Theme 和/或许多 Customization > Theme component,我们已经使它们与新 Sass 版本兼容。

如果您的自定义主题出现故障,请与我们分享,我们将协助修复。

17 个赞

:sweat_smile: CW 和 Multilingual 都因为这个而中断,但已得到修复。

7 个赞

谢谢你的提醒,看起来 sass-migrator 并不支持这个 :man_facepalming:。我现在正在查找相关实例。

编辑:我曾担心这个问题,但在搜索了所有开源和闭源插件及主题中的这个错误后,我只在您提到的两个插件中发现了对 extend 的这种用法。

9 个赞

您好,早上好。自更新以来,我们的标题栏变大了,页面顶部至少有一英寸的空白。

编辑。
发现在 CSS 的标题部分有这个问题
其他的都是空白的,所以现在标题栏很完美了,但是我无法添加自定义背景。
谢谢。

3 个赞

不确定这是 CSS 的问题还是解析器的问题,但我觉得还是分享一下比较好。

Discourse::ScssError: Error: Expected whitespace

@media screen and(min-width: $breakpoint-sm) {
                 ^
5 个赞