Discourse 2.4.0.beta3 发布说明

2.4.0.beta3 中的新功能

允许自定义 robots.txt

此功能允许管理员在 /admin/customize/robots 处自定义/覆盖 robots.txt 文件的内容。该页面未链接到 UI 中的任何位置——管理员必须手动输入 URL 才能访问该页面:

批量邀请时每分钟最多发送 200 封电子邮件

注意: invite.via_email 已弃用,改用 invite.emailed_status

此提交在 invites 表中添加了一个新列 emailed_status,用于跟踪电子邮件发送状态。

 0 - 不需要
 1 - 待处理
 2 - 批量待处理
 3 - 发送中
 4 - 已发送
  • 对于普通电子邮件邀请,创建邀请记录时 emailed_status 设置为“待处理”。
  • 发送批量邀请时,创建邀请记录时 emailed_status 设置为“批量待处理”。
  • 对于生成链接的邀请,创建邀请记录时 emailed_status 设置为“不需要”。
  • 当邀请邮件进入队列时,emailed_status 更新为“发送中”。
  • 一旦通过 InviteEmail 作业发送了电子邮件,邀请的 emailed_status 将更新为“已发送”。

兑换邀请时的外部认证

此功能(启用后)将允许 invite_only 站点在兑换邀请之前要求外部认证。

  • 创建了隐藏站点设置以切换此功能
  • 允许在禁用本地登录的情况下发送邀请
  • 邀请表单中添加了 OAuth 按钮
  • 要求 OAuth 电子邮件地址与邀请电子邮件地址匹配
  • 如果 OAuth 认证失败,则阻止兑换邀请

公开私信时允许选择分类

此前默认会归类为 未分类,这对某些论坛来说并不理想。现在,工作人员可以立即决定将私信移至哪个分类。

允许查看可审核队列帖子的原始电子邮件

如果帖子通过电子邮件到达但需要审核,我们现在会显示一个图标,点击即可查看电子邮件的原始内容。

如果 Discourse 的电子邮件解析器表现异常,且审核帖子的用户希望了解批准/拒绝帖子之前的原始内容,这将非常有用。

关注词改进

此版本中添加了新功能。

有两个新按钮。第一个允许管理员按操作下载关注词为 .txt 文件,第二个按钮清除每个操作(例如屏蔽、标记等)的所有已删除词。此外,当帖子因包含一个或多个屏蔽词而被拒绝时,错误消息现在会列出帖子中包含的所有屏蔽词。

请注意,此新功能还将导入关注词的文件格式从 .csv 更改为 .txt,因此与导出关注词时的文件扩展名不一致。

自定义 HTML 电子邮件

此功能添加了使用自定义 HTML 模板和可选 CSS 样式来定制所有电子邮件 HTML 部分的能力。CSS 将被解析并转换为内联样式,因为电子邮件客户端对 CSS 的支持较差。在编写自定义 HTML 和 CSS 时,请注意电子邮件客户端的支持情况。保持自定义非常简单

自定义可以在 管理 > 自定义 > 电子邮件样式 中添加和编辑。

由于摘要电子邮件已经经过大量样式化,因此有一个设置可以禁用摘要电子邮件的自定义样式,名为 apply custom styles to digest,位于 管理 > 设置 > 电子邮件 中。

作为这项工作的一部分,所有电子邮件现在都能正确渲染 RTL 区域设置。

在关于页面列出分类版主

这是针对 Category Group Review/Moderation 功能的新更新。从现在开始,分类版主将与工作人员一起显示在站点的“关于”页面上。

添加对组成员可见性级别的支持 & 成员被接受加入群组时发送通知

这是群组可见性管理的另一个补充。现在有 5 个可见性级别(类似于群组可见性):

  • 公开(默认)
  • 已登录用户
  • 仅限成员
  • 工作人员
  • 所有者

管理员和群组所有者始终可以查看群组成员。

此外,从现在开始,当用户被接受加入群组时,将向其发送通知。

通过 JavaScript API 在远程站点嵌入主题列表

此功能添加了对 <d-topics-list> 标签的支持,您可以将其嵌入到您的站点中,该标签将被渲染为 Discourse 主题列表。标签上的任何属性都将作为过滤器传递。例如:

<d-topics-list discourse-url="URL" category="1234"> 将过滤到分类 1234。

要使用此功能,请启用 embed topics list 站点设置。然后,在您想要嵌入的站点上,包含以下 JavaScript:

<script src="http://URL/javascripts/embed-topics.js"></script>

其中 URL 是您的 Discourse 论坛的 URL。

然后在您的 HTML 文档中包含 <d-topics-list discourse-url="URL"> 标签,它将被替换为主题列表。

详细信息请参阅 Embedding a list of Discourse Topics in another site

为用户通知添加 Webhook

如果启用,每当创建用户通知时,这将触发一个 Webhook。根据您的论坛,这可能是大量数据,因此应谨慎使用,因为它包含了所有用户在其动态中看到的所有内容。

将 theme_uploads 视为 JavaScript 中的设置,并允许主题上传 js 文件作为资源

这是对主题的其他改进。第一个改进允许主题和组件访问主题资源。这意味着在主题 js 中,您现在可以通过以下方式获取资源的 URL:

settings.theme_uploads.name

第二个改进有助于解锁主题延迟加载较大 js 负载的能力。此更改是安全的,因为主题本来就可以包含内联 js。

与 iOS/Android 原生应用链接的站点设置 & 将 PWA 安装提示整合到 Discourse UI 中

在此版本中,Android 和 iOS 应用也有新功能。

现在有两个新的站点设置,用于通过 apple-app-site-association 端点添加对 iOS 通用链接的支持,以及通过 .well-known/assetlinks.json 端点添加对 Google 数字资产链接的支持。

此外,我们将阻止原生安装“迷你信息”栏出现,捕获弹出该栏的事件,并将其延迟到用户满足我们的条件为止,目前该条件是信任级别 1。

如果事件发生且用户满足我们的条件,我们将显示一个 Discourse 警报横幅,向用户提议安装。横幅的关闭会被记录,因此用户在同一设备上不再受到打扰。

使用 Discord 登录

我们将 discourse-plugin-discord-auth 的功能添加到了核心。当核心更新时,该插件将自动禁用,参见:discourse/discourse-plugin-discord-auth@fd08678?w=1

有关设置说明,请访问 Configure Discord Login for Discourse

提高匿名缓存性能

这里有 2 个新功能以提高性能:

  • DISCOURSE_COMPRESS_ANON_CACHE (true|false,默认为 false):允许您选择压缩 Redis 中的匿名缓存正文条目,对于 Redis 位于与 Web 服务器分离的高负载站点可能有用。

  • DISCOURSE_ANON_CACHE_STORE_THRESHOLD(默认为 2),仅当观察到条目超过 N 次时才将其推入 Redis。这避免了爬虫遍历大量主题并将它们全部存储在 Redis 中却从未被使用的情况。我们默认的匿名缓存时间对于主题仅为 60 秒。匿名缓存的存在是为了避免“Slashdot”效应,即单个主题在一分钟内被数百人访问。

26 个赞

还有更多!

但等等,还有更多!我们尽力为您突出显示新功能和变更,但变更总是太多,无法一一详述。有关新功能、错误修复、用户体验改进等的完整列表,请务必查看下方列出的“其他功能和修复”。

安全更新

此测试版包含 10 个安全修复,针对由我们的社区和 HackerOne 报告的问题。

  • 通过身份验证提供商激活账户时重置密码
  • 不在查询字符串中发送 CSRF 令牌
  • 升级 nokogiri
  • 为匿名 JS 错误报告添加速率限制
  • 不向无权访问的用户透露类别详情
  • 限制需要登录的站点上的 message-bus 访问
  • 对 OmniAuth 请求阶段要求使用带有 CSRF 令牌的 POST 请求
  • 清理用作互斥键的邮箱 ID
  • 在连接关联账户时添加确认屏幕
  • 验证备份块标识符

插件改进

Discourse Cakeday

  • 更新翻译

Discourse Checklist

  • 更新翻译

Discourse Math

  • 更新翻译

Discourse Saved Searches

  • 更新翻译

Discourse Policy

  • 更新已弃用的图标

Discourse Invite Token

  • 修复:invite.via_email 已弃用,请使用 invite.emailed_status

Discourse User Notes

  • 更新翻译
  • 更新已弃用的图标名称
  • 移除 package.json
  • 更新设置名称和 README,以反映重命名为“用户笔记”
  • 更新 README.md
  • 修复:在数据库中重命名站点设置
  • 修复:使用正确的路径
  • 开发:重命名文件、函数和数据库条目,以及两个小修复

Discourse Translator

  • 对 Microsoft API 使用 zh-Hans 和 zh-Hant 作为语言代码
  • 修复:在 Microsoft 翻译器中使用 HTML 选项
  • 修复规范

Discourse Steam Login

  • 让 Rubocop 满意

Discourse Amazon Login

  • 修复:Amazon 验证电子邮件地址
  • 让 Rubocop 满意

Discourse Canned Replies

  • 更新翻译
  • 更新已弃用的图标名称
  • 重构:轻微重构/格式化
  • 开发:移除 sendAction 弃用
  • 修复:限制移动设备上的编辑回复模态框高度

Discourse Oauth2 Basic

  • 更新翻译
  • 功能:迁移到 ManagedAuthenticator
  • 修复:迁移旧数据时忽略重复的 user_ids
  • 让 Rubocop 满意
  • 修复:从旧数据格式迁移时忽略非数值

Discourse Chat Integration

  • 更新翻译
  • 更新已弃用的图标名称
  • 修复:正确访问转录参数
  • 修复:未定义的局部变量或方法 `site_setting_saved’
  • 修复:如果存在的消息少于“skip_messages”,将引发错误

Discourse Graphviz

  • 为 decorateCooked API 调用添加 ID
  • 修复:仅在启用时注册插件
  • 修复:如果未启用则不执行任何操作
  • 修复:允许在预览中渲染多个图表
  • 修复:自动从图表定义中删除注释
  • 修复:允许图表定义包含空行
  • 功能:使用 svg=true 强制 Graphviz 避免图像转换
  • 功能:将 SVG 渲染为实际 SVG 并替换内联内容

Discourse Tooltips

  • 重构:移除 this.$() 模式
  • 性能:为工具提示启用 3 分钟匿名缓存
  • 功能:在请求排队时添加对速率限制的支持

Discourse Signatures

  • 开发:启用签名时无需重启
  • 修复:仅序列化与该插件相关的用户自定义字段

Discourse Patreon

  • 更新翻译
  • 更新已弃用的图标
  • 修复:当赞助者组或徽章已存在时不报错
  • 检查文件

Discourse Code Review

  • 更新已弃用的图标
  • 根据 Sam 的反馈进行更改
  • 开发:重命名 i18n 键,因为它们不是 i18n 复数化键
  • 开发:将用户同步移至独立模块
  • 开发:将类别创建移至独立模块
  • 修复:竞态条件
  • 修复:拉取单个提交因 079055c 而损坏
  • 功能:同步未合并的提交
  • 功能:将帖子删除同步回 Github
  • 重构:旧模式和弃用
  • 让 Rubocop 满意
  • 开发:添加用于清理输入的辅助函数
  • 功能:拉取请求同步
  • 开发:让 Rubocop 满意
  • 修复:将字符串常量改为大写蛇形命名
  • 修复:仅同步常规帖子
  • 修复:更新关闭帖子时跳过验证
  • 修复:镜像评论后更新 node_id
  • 功能:Github Webhook 配置页面
  • 开发:添加将 PR 帖子镜像为 Github 评论的测试
  • 修复:帖子和主题创建的竞态条件

Discourse Styleguide

  • 重构:移除 this.$() 模式
  • 更新已弃用的 FA 4.7 图标名称和链接
  • 链接更新,图标部分的附加详情
  • 用户体验:小型样式修复
  • 在 SVG 精灵中列出所有可用图标

Discourse Characters Required

  • 更新翻译

Discourse Solved

  • 更新翻译
  • 用户体验:将文本与按钮集成以改善间距
  • 撤销“用户体验:将文本与按钮集成以改善间距”
  • 用户体验:如果我无法取消选择答案,则显示文本而非按钮
  • 移除未使用的变量
  • 修复:解决按钮文本边距问题
  • 修复:在自动提升中包含之前已解决的帖子
  • 修复:在虚构类别默认值更改后修复测试套件
  • 替换已弃用的图标

Discourse Calendar

  • 各种错误修复和性能改进
  • 修复 Prettier
  • 让 Rubocop 满意
  • 修复:确保只有活跃用户才能休假
  • 开发:让我们不要引入基于时间的 heisentests
  • 修复:不要尝试验证来自没有日历的帖子的帖子
  • 修复:确保检查原始帖子而非任何帖子
  • 轻微代码样式修复
  • 修复:如果插件未启用,不要对日历进行 markdown 处理
  • 修复 Prettier

Discourse Plugin Discord Auth

(从本版本开始,Discord 支持已包含在 Discourse 核心中,不再需要此插件)

  • 开发:使用 reviewable API 批准用户
  • 修复:send_email 应为 false
  • 功能:将 Discord 迁移到 ManagedAuthenticator
  • 开发:移除未使用的策略参数
  • 修复:更正 after_authenticate 方法签名以允许重新连接
  • 开发:移除对 omniauth-discord 的依赖
  • 功能:更改限制对 trusted_guilds 访问的方法
  • 用户体验:将 Discord 密钥定义为秘密站点设置
  • 当核心更新包含 Discord 支持时自动禁用插件
  • 用户体验:更新 client_id 站点设置说明

Discourse Prometheus

  • 让 Rubocop 满意
  • 开发:检查文件,尝试隔离数据库异常的根源
  • 开发:尝试积极清除连接
  • 功能:跟踪每个 HTTP 端点的 SQL 调用次数
  • 功能:跟踪匿名缓存性能
  • 开发:记录数据库过于繁琐

Discourse Data Explorer

  • 更新翻译
  • 重构:旧模式、弃用和死代码
  • 添加 prettier
  • 修复 prettier
  • 修复:防止突变只读对象

Discourse Akismet

  • 更新翻译
  • 更新已弃用的图标名称
  • 修复:当不可用时不发送用户 IP/UA
  • 修复:发送前始终检查生物信息
  • 在剥离前检查 comment_content
  • 修复:如果 client_ip 不存在则跳过用户
  • 更新重复的测试描述
  • 修复 Rubocop
  • 撤销“在剥离前检查 comment_content”
  • 功能:在审查 AkismetFlaggedUsers 时尽可能链接到用户个人资料
  • 修复:与“解绑插件 CSS 资源”功能兼容

Discourse Assign

  • 更新翻译
  • 开发:使用组 ID 以允许对组进行分配
  • 重构:旧 Ember 模式、弃用、死代码
  • 开发:使用新的 topic-button API
  • 修复:使用 taskActions API 并移除旧按钮
  • 开发:允许的分配组随建议一起发送。迁移发生后,我们仍需要访问允许的组名称以便搜索用户。
  • 修复:移除未使用的导入
  • 在构造函数内初始化 allowedGroups
  • 让 Rubocop 满意
  • 用户体验:为已分配的主题列表页面标题添加“已分配”
  • 修复:使用 can_assign 而不是 staff 以正确显示分配模态框

Discourse Voting

  • 更新翻译
  • 开发:将 category_custom_field 定义为布尔值
  • 修复:在类别上禁用投票时收回投票
  • 让 Rubocop 满意
  • 性能:避免类别加载时的 N+1 查询
  • 开发:使用新的 addNavigationBarItem API
  • 开发:将初始化器的一部分移至预初始化器
  • 修复:将重写包装在 reloadable_patch 中
  • 修复:向所有类别序列化器添加 can_vote 属性
  • 检查
  • 修复:确保容器未被销毁
  • 修复:如果未启用则阻止任何操作
  • 修复:保持插件与旧版 Discourse 兼容
  • 重构:插件 CSS 清理
  • 用户体验:将头像包装在投票者弹出窗口中

Discourse AD

  • 更新翻译
  • 修复:使用多种尺寸时 DFP 广告尺寸错误
  • 开发:迁移 no_ads_for_groups 以使用 ID 而非组名
  • 修复:Amazon 广告从未显示
  • 开发:迁移 no_ads_for_groups 以使用 ID 而非组名
  • 修复:CodeFund 和 Carbon Ads 在所有位置始终显示广告
  • 修复:窄宽度下帖子之间的 CodeFund 广告
  • 功能:添加选项以在受限类别中禁用广告

其他功能和修复

点击展开

新功能

  • 在组导航中支持 data-explorer 出口
  • 跟踪 API 密钥最后使用的日期
  • 嵌入带有详细元数据的主题
  • 匿名缓存向记录器报告数据
  • 创建用于销毁类别的 rake 任务
  • 新的 ‘Discourse-Render’ HTTP 头
  • 在恢复被标记的帖子时通知发帖人
  • 不要将 ↔ 替换为表情符号
  • 在组消息上发布已读状态。(最初在 #7989 中引入)
  • 在所有初始化器后添加钩子
  • [date] 添加倒计时属性
  • 在使用 TLS 1.3 0-RTT 时防止重放攻击
  • 允许插件在备份恢复期间操作站点设置
  • 在组消息上发布已读状态
  • 收藏的表情符号也将显示在编辑器自动完成中
  • 仅限工作人员的投票结果
  • 为投票构建器添加预览
  • 允许主题覆盖颜色转换变量
  • 兑换邀请时的外部身份验证
  • 添加设置以在主题中显示转发电子邮件的内容
  • 添加选项以始终在电子邮件中发送摘要
  • 在安全类别中提到以优先处理组
  • 允许帖子处理互斥锁保持更长时间
  • 在受关注单词管理界面中添加测试设施
  • 改进 rake db:stats 提供的统计信息
  • 当 base_url 更改时生成新的 VAPID 密钥
  • 实时将未读状态同步到主题列表
  • 向发出的电子邮件添加附件
  • 添加搜索运算符以查看来自用户的所有直接消息
  • 允许过去 6 个月未受处罚的用户成为 TL3
  • 创建用于销毁类别的 rake 任务
  • 新的日期/时间组件
  • 导出使用 Gz 到 zip
  • 管理员/用户导出使用 zip 格式压缩
  • 创建用于销毁类别的 rake 任务
  • 使用 WorkboxJS 使 Discourse 离线工作

错误修复

  • 移动 Safari 编辑器改进
  • 使“组会员请求”功能与可见性级别选项“logged_on_users”兼容
  • 调整 iPhone Xs Max 和 Xʀ 的编辑器大小
  • 向记录器报告缓存的控制器和操作
  • 确保 google classic 具有正确的 man_facepalming 表情符号
  • 如果上传 URL 不存在,则将 ‘short_url’ 包含为 src
  • 点击消息按钮后关闭用户卡片
  • 处理 Safari 同站 Cookie 怪癖的身份验证弹出窗口
  • 被标记帖子的用户通知
  • 当帖子被删除时,用户应收到通知
  • 更改 per_host <-> 全局时调度程序损坏
  • 允许访问主题设置内的嵌套对象
  • 如果出现孤立用户记录,则跳过徽章
  • 心跳应针对每个主机
  • 后台标签中的通知未正确更新
  • 检查更新时未保存远程主题记录
  • 如果主题已被删除,则避免发布更改
  • 当 publish_group_state 启用时包含已读指示器
  • 覆盖不存在的复数键的文本导致错误
  • 确保主题 CSS 的实时加载首次生效
  • 使 turbo_rspec 在共享组中正确显示错误
  • 部署期间创建样式表的竞态条件
  • 编辑主题标题时不搜索标签
  • 如果主题不再存在,不要崩溃
  • 通过 omniauth 激活时,在密码重置后创建令牌
  • 激活用户时,确保更改立即反映
  • 即使找不到 git 版本,也允许仪表板加载
  • 在第一个帖子上显示实际读者
  • 确保头像大小为整数
  • 仅对官方 iOS 应用横幅使用 app 参数
  • 仅当属性启用时才显示谁已阅读
  • 正确更新主题组
  • 覆盖 _MF 文本对 en_US 无效
  • 使用自定义身份验证器 URL 时,使用 GET 发送请求
  • Add_to_serializer 未正确考虑继承链
  • 使用原生应用时不显示 PWA 横幅
  • 从错误消息中移除重复的 %-sign
  • 每个 sidekiq 进程的心跳检查
  • 允许 mini-tag-chooser 在后台获取标签
  • 为 wordpress 过滤隐藏帖子
  • 删除自己的账户后不设置 destination_url cookie
  • IE11 中提到时出现无限循环
  • 正确加载仅桌面和移动端的插件 CSS 资源
  • 使用隐藏标签时允许编辑主题
  • 回退处理程序中的竞态条件
  • 不要尝试删除暂存且未使用的管理员和版主
  • 定期重置上传的未知扩展名
  • 目前将 PWA 安装横幅限制为 Android
  • 仅当组设置启用时,已读指示器才会出现
  • 确保额外区域设置仅对工作人员可用
  • 确保偏移量始终为正
  • 防止在注销点击事件时移动导航创建错误
  • 为额外导航项上的自定义 href 使用更简单的模式
  • Rack-mini-profiler 未显示插件帧
  • J/K 导航在快速滚动时重置当前选择
  • 在组邀请上正确设置通知级别
  • 邀请组进行消息传递时尊重跟踪状态
  • 显式要求 topic_query_params
  • 重映射后清除横幅主题缓存
  • 确保报告无法修改记录
  • 加载库时更正竞态条件
  • 延长 s3 相关分布式锁的持有时间
  • 将插件所需的自定义属性存储在 queuedpost 负载中
  • 尝试使用 addDiscoveryQueryParam 中的参数
  • 在比较前将 omniauth 身份验证器名称转换为符号
  • 如果身份验证器电子邮件缺失,不引发异常
  • 将来自身份验证提供程序的电子邮件转换为小写
  • 用 SQL 查询替换模型使用
  • 更正 post_edits 报告的排序,并移除查询限制
  • 更正 post_edits 仪表板报告的查询
  • 在 s3 上传检查后移除 tmp 库存文件
  • Android 上移除滑入菜单
  • 移动第一个帖子时不更新 watching_first_post 通知
  • 受信任用户可能因一个标记而隐藏内容
  • 防止恢复期间失败的重新映射
  • 在重新映射期间将 topic_links.url 截断为 500 个字符
  • 不创建双重喜欢通知
  • 空白第二因素获得默认名称
  • 为 IE 填充 String.prototype.repeat
  • 当用户在私信中发帖时,禁止用户自行删除
  • 使用 #dup 而不是 #+@,因为内容可能是 Nokogiri::XML::Element 的实例
  • 删除表时删除 readonly 函数
  • 在备份期间创建 readonly 函数
  • 检测 DiscourseHub 用户代理
  • 仅对 Oneboxed URL 授予“第一个 Onebox”徽章
  • 更正 OmniAuth 路由排序
  • 在 Reviewable 更新时通知
  • 某些区域设置启动了错误的 discobot 教程
  • 移除对 distributed_mutex lib 中 present? 的依赖
  • 正确编码 HTTP 头中的非 ASCII 文件名
  • 不跟随路径为 /login 或 /session 的同一主机重定向
  • 允许替换数字和符号表情符号
  • 嵌入主题在某些 HTML 下会失败
  • 如果不满足最低可见性,则不隐藏/关闭主题
  • 使用未转义的标题作为组合框 ID
  • S3 上传缺少 cache-control 头
  • 确保 flag-ratio 报告显示 disagreed > agreed 的用户
  • 仅对组所有者显示会员请求链接
  • 生成的控制器应在带下划线的文件夹中
  • 确保 pikaday 选择器显示 UTC 时间
  • 允许在 Chrome 中复制粘贴文件到编辑器
  • b1f5949 中的语法错误
  • 使 workbox 路径与多站点兼容
  • IE11 上的编辑器预览
  • 将已弃用的“刷新”图标重命名为“同步”
  • 更好地检测 Apple 浏览器
  • 各种受关注单词改进
  • 如果已存在,则不包含多站点上传路径到源 URL
  • 使上传恢复与多站点兼容
  • 当第一个帖子被移动时正确更新回复
  • 模态框的 onClose 被重复调用
  • 当多站点测试引发异常时回滚
  • 不要在测试中的不同线程中重用 redis 连接
  • Gravatar 上传依赖于 authorized_extensions
  • DistributedMutex
  • 从管理员用户页面更新用户名时更好的错误消息
  • 将详细选项添加回 DbHelper.remap
  • 在迁移中添加 frozen_string_literal: true
  • 防止 user-notifications-dropdown 导致意外更改
  • Post#each_upload_url 在 CDN 启用时向块提供错误路径
  • 使初始化器在首次 db:migrate 时工作
  • 正确识别基于 Chromium 的 Edge
  • 支持主题组件中的多文件样式表
  • SSO 因空白密钥失败时更好的错误
  • 导出报告时包含默认标签
  • 如果未选择有效标签,则提供错误消息
  • TopicEmbed.import 中的冻结字符串错误
  • 从被忽略用户处隐藏实时加载的帖子
  • 撤销 #18e2816
  • 在多站点设置中为原始和优化库存使用相同的 ID
  • 对路由格式应用默认约束(第二次尝试)
  • 在 auth_redirect 中保留查询参数
  • 确保作业在 migrate_to_s3 后不立即运行
  • 更新主题类别时改进标签检查
  • 如果编辑器中不允许,则移除未分类上下文
  • 将 featuredLink 作为 featured_link 发送到后端以更新正确的值
  • 将 featuredLink 作为 featured_link 发送到后端以更新正确的值
  • 检查未压缩根路径时使用 uniq 而不是 uniq!。为 ZipUtils 使用 rails 命名约定
  • 迁移尝试更改冻结字符串
  • 移动帖子时更新回复计数
  • 移动帖子后删除用户不可见的通知
  • 移动帖子后旧通知未链接到正确的帖子
  • 允许在 wrap 组件中指定驼峰式属性
  • 为每篇帖子设置最小阅读时间
  • 始终备份本地上传以及存储在 S3 上的文件
  • 在“全部登出”请求时不请求刷新
  • 对帖子通知显示相同的用户名或名称
  • 带有 unicode 站点标题的空备份名称
  • URL 编码 RSS 馈送中用户个人资料链接的用户名
  • 移除 ‘find_missing_uploads’ 方法内的帖子上传记录创建
  • 阻止使用按钮关闭删除账户模态框的错误
  • 受关注单词 UI 中无法翻译的字符串
  • 带有 unicode 站点标题的空备份名称
  • 在“全部登出”时尊重 logout_redirect 设置
  • 当 ‘raw’ 以非图像上传 URL 开头时,它不会被转换为短 URL
  • 将热链接的非图像 URL 转换为短 URL
  • 再次从 Apple 设备移除所有服务工作者
  • 重命名已弃用的图标,允许徽章中使用自定义图标
  • 当 COMPILER_VERSION 更改时重新编译 extra_js 主题资源
  • 如果不支持 brotli,则回退到 gzip 压缩
  • 跳过热链接非图像 URL 的 Markdown 转换
  • 由 pg_dump >= 11 创建的备份不可移植
  • 对路由格式应用默认约束
  • 确保被抑制的类别不产生任何特色主题

用户体验变更

  • 对主题列表嵌入使用 Flexbox
  • 使用 vertical-align: middle 而不是 em 单位
  • 使用颜色代码变量
  • 将嵌入主题列表的 HTML 结构从表格转换为 div
  • 已读指示器改进
  • 移除关于桌面通知的未使用字符串
  • #8047 的小型后续工作
  • 标题中标签的更好对齐
  • Chrome 自动完成搜索错误的变通方法
  • 长子类别名称的类别框布局修复
  • 防止引用中的非灯箱图像拉伸/挤压
  • 如果用户无法创建标签,则隐藏“创建标签”选项
  • 类别标题前插件出口的一致放置
  • 在站点设置描述中添加 robots.txt 编辑器的链接
  • 如果必需,则回退到未本地化的身份验证提供程序名称
  • 防止 twitter onebox iframe 高于移动视口
  • 改进常见 OmniAuth 异常的错误处理
  • 修改管理员电子邮件模板以有更多表单空间
  • 打开忽略持续时间模态框时清除用户名
  • 在身份验证流程期间隐藏登录/注册标题按钮
  • 在 no_ember 页面上添加登录按钮图标
  • 改进投票构建器模态框的布局
  • 改进报告导出 UI 上的日期
  • 在本地日期插件中使用更短的星期标签
  • 在日期选择器中使用更短的星期标签
  • 隐藏时将“保留帖子”重命名为“保留隐藏帖子”
  • 管理员摘要电子邮件预览页面的样式修复
  • 移除被忽略用户列表上令人困惑的边框
  • 使个人资料查看与其他元素一致
  • 防止烹饪日期换行
  • 当管理员点击保存但未添加组以更改类别权限时显示警告
  • 提高置顶/跟踪原因文本的对比度,改进布局
  • 当账户描述缺失时改进账户关联
  • 向 post-controls 添加展开/折叠类
  • 修复 onebox favicon 垂直对齐
  • 改进移动设备上长标签标题的布局
  • 重构头像上传模态框以改善移动设备间距
  • 更新邀请“未找到”消息
  • 修复移动设备上个人资料图像上传控件的间距
  • 在类别框标题中添加带有 href 的 <a> 标签
  • 移除双因素偏好中的重复说明
  • 使用 SCSS 颜色变量
  • 默认禁用系统编辑通知
  • 交换忽略和静音部分,将“保存更改”按钮移到底部
  • 使用相对于视口的高度作为 robots.txt 文本区域的高度
  • 重新排列编辑模态框中的控件

性能

  • 对 favicon 代理使用 CDN URL
  • 为常规作业计划运行多个线程
  • 减少用户操作的一致性窗口
  • 避免在不使用时过滤共享草稿
  • 仅选择我们使用的字段
  • 预计算组成员最后阅读的帖子
  • 更快计算编辑器正文长度
  • 避免主题视图中的 N+1 查询
  • Rake posts:rebake_uncooked_posts 内联运行
  • 当消息总线被淹没时,将由服务器延迟
  • 对缓存存储使用添加更多约束
  • 提高查找直接私信时的查询速度
25 个赞