Halo 是一款强大易用的开源建站工具,它让你无需太多的技术知识就可以快速搭建一个博客、网站或者内容管理系统。具备可插拔架构、主题套用、富文本编辑器等多重特性,支持用户根据自己的喜好选择不同类型的插件及主题模板来定制化自己的站点功能及外观。让内容创作和发布更加便捷生动。
截至目前(2024 年 Q3 季度),Halo 已经在 Docker Hub 获得了超过 240 万次下载,GitHub Star 数突破 33 k,并拥有一百多名社区贡献者。
2024 年 10 月 14 日,强大易用的开源建站工具 Halo 正式发布 2.20 LTS 版本。
Halo 2.20 包含多项功能更新和问题修复,标志着首个 LTS(长期支持) 版本的诞生。
⚠️ 重要提示
- 此版本重构了登录相关的页面,登录入口从
/console/login
改为了 /login
。
- 在重构登录页面的过程中,也改动了登录授权相关的逻辑和 API,请在升级之后进行以下操作:
- 升级所有登录认证相关的插件。
- 重新在 用户 -> 身份认证 页面启用和排序三方认证方式。
- 系统设置 -> 用户 -> 短信验证码 选项已废弃,需要升级之后去 用户 -> 身份认证 重新开启。(专业版)
- 系统设置 -> 用户 -> 默认登录方式 选项已废弃,需要升级之后去 用户 -> 身份认证 中管理,拖动所需登录方式为第一个即可。(专业版)
- 角色的 登录之后默认跳转位置 设置选项在此版本已移除,建议使用
/login?redirect_uri=
代替。
- 出于安全考虑,此版本在生产环境下默认禁用了 Basic Auth 的认证方式,如有需要可以通过添加
halo.security.basic-auth.disabled=false
启动参数来启用。
亮点更新
重构登录/注册相关页面
在介绍新的登录页面之前,我们要先说明一下为什么要进行重构,在之前的版本中,和登录相关的功能存在以下问题:
- 之前的版本中,登录注册相关的逻辑完全由 Console 处理,Console 需要处理各种异常情况和重定向,这会导致 Console 的逻辑过重,且影响整个 Console 页面加载性能。
- 各种重定向在 Console 端难以处理且本身在后端有类似的处理逻辑。
- 登录页面加载缓慢,因为依赖于 Console 项目,所以会加载部分使用不上的资源。
- 登录和注册页面现阶段无法扩展,因为登录页面不会加载插件资源(可能会有隐性的安全问题,如果攻击方可以识别到有哪些插件,可以定向利用插件的漏洞),如果交给后端渲染登录页面则可以避免此问题。
- 目前管理端不止 Console,还有 UC(个人中心),如果能提供一个统一的登录页面(/login)可能会更好(避免歧义)。
- 主题无法为登录等页面自定义样式,满足不了部分自定义的场景。
基于以上问题,我们在 2.20 版本中彻底重构了登录/注册等页面,现在完全由后端渲染页面和路由。以下是重构之后带来的一些改进:
- 统一使用
/login
页面,更加直观。
- 提升页面加载性能,降低至少 30 倍的资源体积。
- 提升页面的交互逻辑。
- 插件扩展登录方式的方式更加合理。
- 支持通过主题或者插件提供渲染模板,支持主题继承登录相关的模块。
加载速度对比
2.19 | 2.20 |
| |
部分界面预览
登录 | 注册 |
| |
两步验证 | 退出登录 |
| |
主题继承登录模块 | 主题自定义样式 |
| |
个人中心内容管理优化
在 Halo 2.20 中,我们在个人中心中支持了上传和访问自己的附件以及删除自己创建的文章,可以更好地适应多人管理网站的需求。
支持上传和访问自己的附件
支持删除文章
完整更新日志
新特性
- 支持用户在个人中心上传和访问自己的附件(需要具有对应权限)。 by @guqing in #6731
- 支持在个人中心的文章管理界面删除用户创建的文章。 by @guqing in #6729
- 重构登录、注册相关的页面。 by @JohnNiang in #6488
- 登录、注册相关页面改为由后端渲染页面,提供统一的访问入口。
- 提升页面加载性能。
- 优化登录、注册相关页面的交互逻辑。
- 登录、注册等页面支持通过主题或者插件提供。
破坏性更新
功能优化
问题修复
开发者相关
依赖更新