⚠️ 注意
此版本包含一些破坏性更新,在更新前请注意以下问题:
部分插件中使用的过时 API 已经在此版本中已移除,如果升级之后部分插件出现异常,建议先检查一下插件兼容性以及是否有新版本已经进行兼容。
为了能够更好的维护页面静态缓存功能,此版本将其封装为了单独的插件,如果有需要,请单独安装 https://github.com/halo-sigs/plugin-page-cache 插件。
Halo 是一款强大易用的开源建站工具,它让你无需太多的技术知识就可以快速搭建一个博客、网站或者内容管理系统。具备可插拔架构、主题套用、富文本编辑器等多重特性,支持用户根据自己的喜好选择不同类型的插件及主题模板来定制化自己的站点功能及外观。让内容创作和发布更加便捷生动。
截至目前(2024 年 Q2 季度),Halo 已经在 Docker Hub 获得了超过 220 万次下载,GitHub Star 数突破 32 k,并拥有一百多名社区贡献者。
2024 年 07 月 02 日,强大易用的开源建站工具 Halo 正式发布 2.17.0 版本。
在这个版本中,Halo 主要增强了内容管理功能以及大量针对插件和主题开发的改进,以及其他 50 多项功能优化和问题修复。
亮点更新
文章批量管理
在 2.17 版本中,我们为文章管理添加了批量管理的功能,现在你可以选择一批文章,然后批量发布或者取消发布。
或者点击批量设置按钮,可以打开属性批量设置的界面,在这个界面,你可以批量设置文章分类、标签、作者等。
文章分类管理
在 2.17 版本中,我们优化了文章分类的管理功能,现在你可以将分类隐藏,让其中的文章不再显示在默认的文章列表中,然后使用单独的访问入口进行访问。利用此功能可以让你的网站更好的实现内容划分,可以用于实现单独的新闻中心、案例中心等模块。
此外,现在也可以统一在分类中设置自定义的文章渲染模板,如果你使用的主题提供了多套文章渲染模板,可以直接在分类中设置,而不再需要单独为文章设置。
编辑器改进
在 2.17 版本中,我们优化了文章编辑器的代码快样式,并支持了复制、折叠功能。
登录设备管理
在 2.17 版本中,我们为用户引入了登录设备管理的功能,现在你可以在个人中心查看当前所有的登录设备,如果有需要,你也可以移除设备的登录状态。
完整更新日志
破坏性更新
移除过时 API ExtensionComponentsFinder。 by @JohnNiang in #6185
移除内置的页面静态缓存功能,后续由 https://github.com/halo-sigs/plugin-page-cache 插件提供。 by @ruibaby in #6108
新特性
文章分类和标签的编辑表单支持保存并继续添加。 @LonelySnowman in #6223
功能优化
支持通过配置的方式全局禁用二步验证。 by @JohnNiang in #6242
引入基于持久化 Token 的新 RememberMe 机制以增强安全性和管理灵活性,升级后需要重新登录。 by @guqing in #6131
问题修复
修复当启动插件遇到 Error 级别的错误时会导致 API 被挂起无法终止的问题。 by @guqing in #6207
修复在没有配置 TOTP 验证器的情况下仍被要求二步验证的问题。 by @JohnNiang in #6174
修复 Tag 组件的图标为空时,Tag 中的内容没有居中的问题。 by @ShiinaKin in #6040
修复首次初始化后无法正常访问主题资源的问题。 by @JohnNiang in #6049
开发者相关
新增 LoginHandlerEnhancer 用于 Halo 扩展登录成功或失败后的处理逻辑。 by @guqing in #6176
支持在插件中监听插件的启动事件。 by @JohnNiang in #6234
为插件提供全文搜索服务。 by @JohnNiang in #6239
提供对模板中
<halo:footer />
标签内容的扩展点以支持通过插件扩展页脚内容。 by @guqing in #6191重构请求库并将
@halo-dev/api-client
作为全局共享依赖,开放给插件和外部应用程序使用。 by @ruibaby in #6132重构搜索引擎并提高可扩展性。 by @JohnNiang in #6082
为自定义模型添加 patch 类型的接口支持。 by @JohnNiang in #6031
将文章相关的事件移动至 api 模块以暴露给插件使用。 by @JohnNiang in #6052
为插件提供发送共享事件的支持。 by @JohnNiang in #6081
重构 OpenAPI 文档分组。 by @JohnNiang in #6130
增强插件配置的缓存管理并支持通过监听
PluginConfigUpdatedEvent
事件做一些特殊处理。 by @guqing in #6141重构 ControllerBuilder 的匹配条件并增加 syncAllListOptions 作为启动时同步的查询条件。 by @guqing in #6145
依赖更新
升级 SpringDoc 至 2.6.0。 by @JohnNiang in #6227
升级 Lucene 至 9.11.1。 by @JohnNiang in #6188
升级 Spring Boot 至 3.3.1。 by @JohnNiang in #6110
升级 MariaDB 的原生驱动版本至 1.2.1,以解决使用 MariaDB 无法正常部署的问题。 by @ruibaby in #6133