2.17.0
付费版
更新日志
⚠️ 注意
此版本包含一些破坏性更新,在更新前请注意以下问题:
- 部分插件中使用的过时 API 已经在此版本中已移除,如果升级之后部分插件出现异常,建议先检查一下插件兼容性以及是否有新版本已经进行兼容。
- 为了能够更好的维护页面静态缓存功能,此版本将其封装为了单独的插件,如果有需要,请单独安装 https://github.com/halo-sigs/plugin-page-cache 插件。
- 此版本重构了 Redis 启用的逻辑,更新到此版本需要添加额外的启动参数
--halo.redis.enabled=true才能让 Redis 生效,详细信息可参考文档:https://www.lxware.cn/docs/helpcenter/halo-pro/user-guide/redis
破坏性更新
- 根据条件启用 Redis 模块以避免影响健康检查。(专业版)
- 移除过时 API ExtensionComponentsFinder。 by @JohnNiang in halo-dev/halo#6185
- 移除内置的页面静态缓存功能,后续由 https://github.com/halo-sigs/plugin-page-cache 插件提供。 by @ruibaby in halo-dev/halo#6108
新特性
- 支持手动为文章设置作者。 by @ruibaby in halo-dev/halo#6178
- 为单个主题配置增加导入与导出的功能。 by @LIlGG in halo-dev/halo#6071
- 新增设备管理功能,允许管理已登录你账号的设备并随时移除可疑设备。 by @guqing in halo-dev/halo#6100
- 支持在分类上为关联的文章统一设置渲染模板。 by @guqing in halo-dev/halo#6106
- 新增独立分类选项用于控制关联的子分类下的文章显示以提供更灵活的内容管理方式。 by @guqing in halo-dev/halo#6083
- 允许为分类设置是否从列表中隐藏。 by @guqing in halo-dev/halo#6116
- 支持批量发布/取消发布文章。 by @ruibaby in halo-dev/halo#6123
- 支持批量为文章设置部分属性。 by @ruibaby in halo-dev/halo#6142
- 添加系统扩展点的查看和设置页面。 by @ruibaby in halo-dev/halo#6137
- 文章分类和标签的编辑表单支持保存并继续添加。 @LonelySnowman in halo-dev/halo#6223
功能优化
- 优化 License 导入后的错误提示。(专业版)
- 个人中心验证邮箱支持限制邮箱后缀。(专业版)
- 优化 Console 中多选框的禁用样式。 by @longjuan in halo-dev/halo#6220
- 支持通过配置的方式全局禁用二步验证。 by @JohnNiang in halo-dev/halo#6242
- 支持在文章编辑页面创建文章时,也应用别名生成规则。 by @ruibaby in halo-dev/halo#6205
- 添加对菜单的限制,不能删除已经设置为主菜单的菜单。 by @ruibaby in halo-dev/halo#6203
- 优化文章编辑器内容区域在低分屏下的表现。 by @ruibaby in halo-dev/halo#6175
- 为默认编辑器代码块增加折叠功能。 by @LIlGG in halo-dev/halo#6177
- 默认编辑器图片跳转链接支持配置新窗口打开。 by @LIlGG in halo-dev/halo#6170
- 重构索引机制的查询和排序使整体性能提升 50% 以上。 by @guqing in halo-dev/halo#6039
- 优化默认编辑器代码块样式。 by @LIlGG in halo-dev/halo#6089
- 优化默认编辑器代码块缩进为两个空格。 by @LIlGG in halo-dev/halo#6090
- 为默认编辑器的块级节点增加间隙光标的功能。 by @LIlGG in halo-dev/halo#6103
- 为默认编辑器添加 RangeSelection 选择器。 by @LIlGG in halo-dev/halo#6117
- 优化文章编辑页面自动保存标题的功能。 by @ruibaby in halo-dev/halo#6122
- 引入基于持久化 Token 的新 RememberMe 机制以增强安全性和管理灵活性,升级后需要重新登录。 by @guqing in halo-dev/halo#6131
问题修复
- 修复短信验证码可能无法正常发送的问题。(专业版)
- 修复从手机号登录切换到用户名密码后,首次登录会提示 CSRF Token 失效的问题。(专业版)
- 修复未配置 Redis 时编辑文章会出现大量 Redis 警告日志的问题。(专业版)
- 修复首次初始化之后,注册页面无法正常显示的问题。(专业版)
- 修复当插件入口文件的缓存目录被系统清理后会导致一直无法加载的问题。 @guqing in halo-dev/halo#6238
- 修复当启动插件遇到 Error 级别的错误时会导致 API 被挂起无法终止的问题。 by @guqing in halo-dev/halo#6207
- 修复在没有配置 TOTP 验证器的情况下仍被要求二步验证的问题。 by @JohnNiang in halo-dev/halo#6174
- 修复查询分类的排序条件拼写错误导致的错误。 by @guqing in halo-dev/halo#6173
- 修复系统设置未保存导致无法正常注册的问题 by @ruibaby in halo-dev/halo#6035
- 修复 Tag 组件的图标为空时,Tag 中的内容没有居中的问题。 by @ShiinaKin in halo-dev/halo#6040
- 修复首次初始化后无法正常访问主题资源的问题。 by @JohnNiang in halo-dev/halo#6049
- 解决在默认编辑器中粘贴的内容无法生成标题 ID 的问题。 by @LIlGG in halo-dev/halo#6059
- 解决使用默认编辑器时无法正确设置焦点的问题。 by @LIlGG in halo-dev/halo#6062
- 修复已验证邮箱可以重复的问题。 by @guqing in halo-dev/halo#6064
- 修复新建文章时,没有自动选择之前所选编辑器的问题。 by @ruibaby in halo-dev/halo#6114
- 修复首次上传附件时,没有默认选择第一个存储策略的问题。 by @ruibaby in halo-dev/halo#6115
- 解决文章自动保存失效的问题。 by @LIlGG in halo-dev/halo#6147
- 处理默认编辑器中 iframe 标签的 src 属性可能存在的风险。 by @LIlGG in halo-dev/halo#6150
开发者相关
- 新增 LoginHandlerEnhancer 用于 Halo 扩展登录成功或失败后的处理逻辑。 by @guqing in halo-dev/halo#6176
- 支持在插件中监听插件的启动事件。 by @JohnNiang in halo-dev/halo#6234
- 为 UI 添加通用的插件设置弹窗,以供插件主动调用。 by @ruibaby in halo-dev/halo#6233
- 为插件提供全文搜索服务。 by @JohnNiang in halo-dev/halo#6239
- 支持在主题模板中检查已启动的插件是否符合指定的版本要求。 by @guqing in halo-dev/halo#6236
- 提供对模板中
<halo:footer />标签内容的扩展点以支持通过插件扩展页脚内容。 by @guqing in halo-dev/halo#6191 - 为分类 Finder 提供获取指定节点的面包屑路径方法。 by @guqing in halo-dev/halo#6135
- 为 FormKit 添加 Secret 选择组件。 by @ruibaby in halo-dev/halo#6140
- 重构请求库并将
@halo-dev/api-client作为全局共享依赖,开放给插件和外部应用程序使用。 by @ruibaby in halo-dev/halo#6132 - 添加 AvatarGroup 组件,用于堆叠多个头像。 by @ruibaby in halo-dev/halo#6128
- 为 Formkit 增加动态列表的组件。 by @LIlGG in halo-dev/halo#6146
- 重构搜索引擎并提高可扩展性。 by @JohnNiang in halo-dev/halo#6082
- 为自定义模型添加 patch 类型的接口支持。 by @JohnNiang in halo-dev/halo#6031
- 将文章相关的事件移动至 api 模块以暴露给插件使用。 by @JohnNiang in halo-dev/halo#6052
- 为插件提供发送共享事件的支持。 by @JohnNiang in halo-dev/halo#6081
- 重构 OpenAPI 文档分组。 by @JohnNiang in halo-dev/halo#6130
- 增强插件配置的缓存管理并支持通过监听
PluginConfigUpdatedEvent事件做一些特殊处理。 by @guqing in halo-dev/halo#6141 - 重构 ControllerBuilder 的匹配条件并增加 syncAllListOptions 作为启动时同步的查询条件。 by @guqing in halo-dev/halo#6145
- 支持通过 Builder 来简化 ListOptions 的构建。 by @guqing in halo-dev/halo#6148
依赖更新
- 升级 SpringDoc 至 2.6.0。 by @JohnNiang in halo-dev/halo#6227
- 升级 Lucene 至 9.11.1。 by @JohnNiang in halo-dev/halo#6188
- 升级 Spring Boot 至 3.3.1。 by @JohnNiang in halo-dev/halo#6110
- 升级 MariaDB 的原生驱动版本至 1.2.1,以解决使用 MariaDB 无法正常部署的问题。 by @ruibaby in halo-dev/halo#6133
- 升级 pf4j 至 3.12.0 版本以解决插件依赖解析不正确的问题。 by @guqing in halo-dev/halo#6143
Full Changelog: v2.16.0...v2.17.0