Discourse 2.4.0.beta7 发布说明

2.4.0.beta7 中的新功能

管理员 API 密钥改进

Discourse API 是与 Discourse 站点交互的强大工具。在最新的测试版中,我们对 API 密钥系统进行了多项改进,提升了安全性和功能性。

  • 用户现在可以创建多个 API 密钥,因此如果某个密钥泄露,可以单独撤销该密钥。
  • API 密钥现在可以包含描述,方便您跟踪每个密钥的用途。
  • 密钥可以被撤销,从而防止其被使用,而无需完全删除它们。
  • 未使用的 API 密钥将在 6 个月未使用后自动删除。此行为可通过站点设置 revoke_api_keys_days 进行配置。

工作人员欢迎消息

与新用户和达到 TL1 级别的用户一样,工作人员在获得版主或管理员权限时也会收到欢迎消息。该消息欢迎用户加入工作人员团队,告知他们如何访问管理界面,并链接到 https://meta.discourse.org/t/discourse-moderation-guide/63116,这是一个为新工作人员提供的优秀资源。

默认标签通知状态的新站点设置

管理员长期以来可以控制新用户在加入论坛时关注、跟踪和静音哪些分类。用户也可以控制自己关注/跟踪/静音哪些标签,但此前无法在注册前由站点进行配置。现在,管理员可以通过新的站点设置决定用户在注册前跟踪哪些标签:

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

更改默认站点设置时更新所有用户的偏好

以前,当修改 default_ 类型的站点设置时,仅适用于新用户,现有用户不受影响。现在,管理员可以选择将此更改历史性地应用到所有用户,或仅应用于新用户。

新的分类标签设置:要求新主题必须包含来自标签组的标签

对于使用标签组的站点,工作人员现在可以要求某个分类中的所有新主题在创建前必须至少包含来自某个标签组的 x 个标签。这是保持主题组织有序的好方法。

举例来说,如果您有一个关于汽车改装的分类,用户在此分享他们所做的各种精彩改装。您可以创建一个名为“车辆区域”的标签组,其中包含轮胎、轮毂、外观、内饰和灯光等标签。将此标签组添加到新设置后,用户将被要求为话题添加至少一个这些标签,帮助其他用户一眼看出该改装的具体内容。

用户可选择的主要群组

我们新增了一个站点设置 user selected primary groups,启用后允许用户选择希望作为其主要群组的群组。这对于那些通过主要群组提供 头像装饰 的站点特别有用,用户可以根据需要切换显示的装饰。启用该设置后,属于群组的用户将在“账户”标签页中看到新的主要群组偏好下拉菜单。

image

可配置的邮件样式

站点现在可以使用自定义 HTML 和 CSS 来定制通知邮件的外观和风格。新的邮件自定义选项可在 /admin/customize/email_style 找到。

插入超链接时搜索主题

在话题编辑器中插入链接时,您现在可以直接从超链接弹窗中搜索现有话题。

37 个赞

更多更新!

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

安全更新

此测试版包含 1 项安全修复,用于解决社区和 HackerOne 报告的问题。

  • 在自动补全提及时检查权限

插件改进

用户备注

  • 错误修复

投票

  • 错误修复

已解决

  • 错误修复

Patreon

  • 添加可选的捐赠提示
  • 错误修复

OAuth2 Basic

  • 文案改进

Data Explorer

  • 报告的可分享链接
  • 错误修复

Assign

  • 新增分类设置,可添加“未分配”导航菜单
  • 按反向置顶日期排序分配列表(之前为随机)
  • 错误修复

Akismet

  • 错误修复
  • 代码重构

Docker Manager

  • 更新依赖项以解决已报告的漏洞
  • 始终从仪表板显示指向 /admin/upgrade 的链接

Translator

  • 错误修复

RSS Polling

  • wellfed 重命名
  • 错误修复

Onebox

  • 错误修复

No Bump

  • 错误修复

受限回复

  • 初始发布

WP Discourse

  • DiscourseUtilities::get_discourse_categories 使用唯一的临时键。此函数返回的数据量超过了插件内部使用所设置的临时存储中的数据。
  • 修复格式错误的标头键

Zendesk

  • 错误修复

Styleguide

  • 支持新的日期时间输入控件

Policy

  • 保留政策接受历史记录
  • 错误修复

附加功能和修复

点击展开

新功能

  • 无需 JS eval 即可加载翻译覆盖
  • 为额外导航项添加“init”方法
  • 允许在本地或全网范围内发布 Docker 开发环境
  • 若灯箱中没有标题,则回退使用图片的 alt 文本而非文件名
  • 在带参数的嵌入页面上创建新主题按钮
  • 停止为消息和悄悄话更新用户的 last_posted_at 字段
  • 允许向暂存用户发送批量邀请
  • 移除附件并截断传入邮件的 raw 字段
  • 为已识别的垃圾邮件标头添加 SES 垃圾邮件标头
  • 为群组私信记住主题列表
  • 允许 Wiki 编辑者编辑 Wiki 主题的标签
  • 在主题序列化器中包含图片 URL
  • 记住私信列表中的滚动位置
  • 记住私信列表中的位置
  • 草稿备份的实验性隐藏设置
  • 允许工作人员使用 topic_url 自定义电子邮件模板
  • 改进蜜罐和挑战逻辑
  • 在“nofollow”之外使用 ‘ugc’ 关系属性
  • 在登录页面标题中添加简短的网站描述

错误修复

  • 在搜索摘要中检查音频/视频时跳过无效 URL
  • 为摘要邮件添加 <img> alt 属性
  • 调整还原器规范以使其更稳定
  • 当未为子分类选择任何标签时,正确显示标签主题列表
  • 使用 prettier 构建导入
  • 允许在初始化器中访问主题翻译
  • FilterQueryParams 会改变本质上全局的状态
  • 改进用于图片大小控制的正则表达式
  • 在移动设备上,导航项的活动状态设置无法生效
  • 在 iOS 中切换应用时跳过编辑器失焦事件
  • 重新发送邀请时不更新 created_at 日期
  • 不将移动应用流量视为爬虫访问
  • 无需在 onebox 中传递 cache 选项
  • Dropbox 视频无法加载
  • 确保菜单在仅桌面端不过高
  • 防止 whitelisted_generic_onebox_spec 因 zeitwerk 而失败
  • 更新操作应位于 setting-component 混入中
  • 确保菜单面板不过高以适应屏幕
  • TopicQuery 对没有定义的子分类反应不佳
  • 如果个人消息被禁用,则不要在用户菜单中添加个人消息链接
  • 代码检查
  • makeArray 移至 discourse-common
  • 缺少 run 导入
  • 禁用时不加载插件的 CSS/JS 资源
  • 当悄悄话是最后一条帖子时,未读主题未清除
  • 在移动设备上隐藏静音的子分类
  • 表单上的回车键提交而非刷新
  • 使通知同意横幅可通过键盘和屏幕阅读器使用
  • 将 attachment_css_class 常量从 upload-short-url 移至 discourse-markdown-it
  • 为每个多站点租户单独缓存 Discourse.system_user
  • 在某些条件下,草稿会错误地显示正在保存
  • 可以在没有 q 参数的情况下按 categoryId 过滤标签
  • 默认用户偏好分类未在管理员站点设置 UI 中更新
  • 导入混入时使用 Prettier
  • 确保在显示简介之前有摘录
  • 修正 slug 验证
  • 处理备份还原时上传目录为空的情况
  • 当 slug 为空时正确生成分类 URL
  • 要求 /tags/filter/search 路由中包含 q 参数
  • 不要在漂亮文本中使用 ember 导入
  • 在测试中使用模块进行 Ember.run.debounce 的 hack 处理
  • 更多的代码检查修复
  • 使用关键词上插自定义字段时,数组键被转换为字符串
  • 更多不稳定的 jobs_base_spec.rb 测试
  • 不稳定的 jobs_base_spec.rb 测试
  • 无条件放置图片缩放按钮
  • 按 ESC 键或点击外部时关闭模态框
  • 修复向电子邮件地址发送私信时的错误
  • 优先使用 Category.find_by_slug 而非 Category.find_by(slug: …)
  • 通过 slug 查找 TopicQuery 分类
  • 当 category_id 为空时正确响应用户搜索
  • 主题组件设置未在 UI 中更新
  • 在开发环境中重新加载插件翻译
  • 运行向导并使用自定义主题时,如果 base_scheme_id 为 nil,则回退到 color_scheme 名称
  • 允许在 oauth2_user_infos 中存储非唯一行
  • 更新 rack-mini-profiler
  • 隐藏静音的子分类
  • 处理头像的 nil 情况,以防万一
  • 允许头像下载跟随重定向
  • 证书损坏
  • 使用 prettier 构建失败
  • 在 Oneboxed 帖子中显示投票者
  • 在创建通知前检查是否存在已点赞的帖子
  • 还原器规范上的 Rubocop 规则
  • 非多站点还原在重新连接步骤中未抛出错误
  • 未编译电子邮件样式 CSS 的向后兼容性
  • 当用户无法查看时不加载组成员
  • 创建新主题时不应禁用主题输入框
  • 使用新加载器时向导测试失败
  • 可排序控制器变量冲突
  • 修复测试套件
  • 修正 ImportExport 模块的路径
  • 还原过程中的重新连接连接到正确的数据库
  • 在某些条件下通知缺失
  • 尊重 tl3 links no follow 设置
  • 当因文件大小无法下载头像时返回空白头像
  • 从 web_hook_topic_view_serializer 中排除 image_url
  • 防止空字节搜索导致 500 错误
  • 跟随重定向时,如果响应代码为 200 则返回 URL
  • 不调整 xkcd 图片大小
  • 在通知 webhook 中包含用户 ID
  • 当某些属性缺失时加载用户模型
  • 使分类更新的 slug 验证幂等
  • 刷新通知计数时仅重新加载通知
  • 与 jobs 相关的 zeitwerk 修复
  • 限制速率并劫持证书生成
  • 向 onebox 音频和视频标签添加通用的 HTML5 媒体扩展
  • 在未受保护分类的新主题中修正提及自动补全
  • ‘only_hidden_tags_changed?’ 方法即使在标签未更改时也返回 ‘true’
  • 由于已调用 to_i,id 始终为 true
  • D-button 应默认类型为 button
  • 修复使用 zeitwerk 的插件生成器
  • 草稿系统的各种修复
  • 更新 Redis gem 至版本 4.1.3
  • 为 IE11 在 NodeList 上填充 forEach 支持
  • 处理子分类的编码 slug
  • 不截断编码的 slug
  • 为非 ‘_MF’ 键显示站点文本覆盖
  • 将复数化键转换为 .other 以检查有效的插值
  • 更新 Redis gem 至版本 4.1.3
  • 移除 redis freedom 补丁
  • 更多的编码 slug 修复
  • 不要对 URL 进行两次编码
  • 更多处理编码 slug 的地方
  • 处理 /categories 上的 nil slug
  • 查找子分类时考虑 nil 情况
  • 修正主题时间线位置计算
  • 如果标签属于两个具有父标签的标签组,则无法使用该标签
  • 在示例文本中使用引用生成器
  • 不向空的 push_url 发送通知
  • 如果 push_url 为空,则不调用通知 API
  • 添加迁移以修复分类 slug 上的索引
  • 防止在个人资料上提交输入时垃圾桶按钮获得焦点
  • 尊重用户邀请通知邮件中的 private_email 设置
  • 邀请现有用户加入主题/私信时包含主题链接
  • 修正 GitHub 提交 onebox 中的行数链接
  • 测试中 public_file_server.enabled 为 false
  • 添加唯一索引以防止分类 slug 重复
  • Category.find_by_slug
  • 在 iOS 中选择 Emoji 时不取消置顶回复框
  • 移除不再需要的 hiredis gem
  • 子分类权限验证
  • 分类树深度的验证
  • 仅在用户发帖时移动通知级别
  • 与 jobs 相关的 zeitwerk 修复
  • 确保加载计划任务
  • ‘local_cdn_url’ 方法也应适用于本地相对 URL
  • 允许主题上传和提供 js 文件
  • 如果可用,在编辑器预览中使用上传的 CDN URL
  • 允许使用 TOTP 更改密码
  • 当显示更多结果时允许滚动搜索菜单面板
  • 移除另一个损坏的测试
  • 这个表情符号测试也坏了
  • 不稳定的测试
  • reviewable_scores 的准确 sub_total 计算
  • 配置时正确编码 slug
  • 确保在创建上传时从磁盘移除临时文件
  • 编辑连续段落时显示正确的差异
  • 防止创建重复的 TopicAllowedUsers
  • GitHub onebox 布局的小问题
  • 可审查列表的移动调整

用户体验变更

  • 如果未选择任何标签,标签输入会建议所需标签
  • 在“授予管理员权限”邮件和 UI 中显示用户电子邮件地址
  • 加宽标签组名称输入框并添加占位符文本
  • 将警报和模态框关闭转换为按钮以改善可访问性
  • 在深色主题中为 <select> 应用正确的背景
  • 改进 iOS 上的引用
  • 修复 iOS 编辑器的回归问题
  • 使用颜色变量更新禁用下拉菜单的样式
  • 标准化搜索结果菜单中的标签显示
  • 仪表板链接指向 git 提交列表而非 git 比较
  • 使组成员身份 UI 更清晰
  • 在摘录中强调本地日期为 UTC
  • 确保 GitHub onebox 信息不会不必要地换行
  • 改进电子邮件中新 GitHub onebox 的渲染
  • 在投票构建器中在关闭投票标签后添加换行符
  • 将摘要邮件页脚包裹在表格中以获得更好的对齐选项
  • 在编辑器链接模态框搜索结果中包含元数据
  • 向摘要邮件模板添加 CSS 类以便更容易地设置样式

性能

  • 为横幅添加过滤索引
  • 为通知添加索引以加速帖子移动
  • 发送回复时不在客户端销毁草稿
  • 减少运行昂贵的清理上传的频率
  • 在摘要邮件中缓存新用户数量
  • 在 group 到 category_groups 上添加索引
  • 为 oauth2_user_infos(user_id, provider) 添加唯一索引
  • 更快地移动已读状态
26 个赞