距离我们 2020 年 9 月 24 号发布 1.4.0 已经过去了 545 天了,期间虽然有一些版本更新,但大多数都是 patch 修复版本。终于,在今天正式发布 1.5.0 版本。其中带来了大量的优化更新,下面为大家简单介绍一些亮点功能,详细更新日志可在本文末尾查阅。
版本亮点
文章表拆分
在此版本中,新增了 contents 表专门用于存储文章内容。因为在以前的版本中,当站点有大量文章的时候会出现明显拖慢页面渲染速度的情况,这是因为在之前的版本中,查询文章列表会将内容字段也包含在其中,这就会导致数据越多就会越慢。所以在这个版本中,原本的 posts 表就不再包含 originalContent 和 formatContent 字段,在列表查询的时候也不会包含。需要注意的是,如果你是从 1.4 版本升级的话,目前我们是没有自动清空这两个字段的内容的。当然,你可以手动清空,以获得更好的效果。
性能对比:
版本:1.4.17 vs 1.5.0
测试数据:文章数 1000,每篇 4000 字符。
测试工具:Apache Benchmark
测试平台:MacBook Pro M1 Pro
测试参数:
ab -c 100 -n 10000 http://localhost:8090/
1.4.17:

1.5.0:

注意:此测试可能并不是特别严谨,仅供参考。
文章保存逻辑修改
目前后台已经修改为直接保存编辑器渲染的 html 内容,保证编写时和最终发布结果完全一致。另外,数学公式和 mermaid 图表已经针对此特性做了优化。数学公式仅需在前台引入 katex css 即可。mermaid 图表会被渲染为 svg 并保存,所以无需再引入 mermaid 依赖。
数学公式可以在前台引入:
<link rel="stylesheet" href="https://unpkg.com/katex@0.12.0/dist/katex.min.css" />




目前,我们已经统一使用 @halo-dev/markdown-renderer 进行 Markdown 渲染。
编辑器重构
编辑器编辑区域修改为 Codemirror 编辑器,支持 Markdown 语法高亮,浏览文章会更加方便。

编辑器可以通过快捷键打开图片选择,目前也已经支持多选图片和选择之后直接插入文章。

预览区域支持代码块高亮。

支持更多 Markdown 标记语法。

表格编辑体验优化。众所周知,使用 Markdown 语法编写表格的体验是非常难受的,不仅编写困难,而且格式会非常难以阅读。所以我们使用了一个叫做 mte-kernel 的库来解决这个问题,不仅可以让编辑体验升级,而且会自动格式化表格。

标签支持设置颜色
在这个版本中,我们添加了对标签设置颜色的功能,灵感来自于 GitHub Issues 的标签颜色。这样可以比较直观地区分不同的标签。


文章管理重构
重构了批量操作的逻辑,目前已经不需要提前通过文章状态筛选文章之后才能批量选择。可以任意批量选择之后进行文章状态的批量操作。

文章列表不再展示回收站的文章,改为单独为回收站提供一个入口。

文章设置弹窗进行了重构,改为更直观地显示方式,并且可以在弹窗中进行上下篇的切换。可以非常快速的预览文章设置并进行对文章设置的修改。

附件管理重构
目前支持将鼠标放在附件项即可显示勾选图标,不再需要提前进入批量管理功能。

附件详情也和文章设置一样,修改为弹窗的形式,可以进行上下项的快速切换,方便预览以及进行修改删除等操作。

主题设置重构
主题设置由原来的全屏抽屉形式改为单独的页面。并优化了布局,不再显示主题缩略图,将更多的空间留给设置表单。同时在界面上也展示了主题的相关信息。


版本日志
破坏性更新
评论表单中的邮箱地址不再作为必填项。 #1535 @jerry-shao
重构文章表结构。
后台使用 @halo-dev/admin-api 进行接口请求。 halo-dev/console#378 @ruibaby @guqing
修改后台页面标题后缀,由
Halo Dashboard改为Halo。 halo-dev/console#426 @ruibaby默认后台布局改为左侧菜单布局。 halo-dev/console#441 @ruibaby
重构文章/自定义页面编辑逻辑,改为保存前端渲染内容,放弃后端渲染。 halo-dev/console#439 halo-dev/console#440 halo-dev/console#449 #1668 @ruibaby @guqing
新特性
Content API 添加获取所有图库图片分组的接口(PhotoController#listTeams)。 #1515 @fuzui
文章标签支持设置颜色。 #1566 halo-dev/console#395 @ruibaby @guqing
重构后台文章分类管理,支持排序。 #1650 #1657 halo-dev/console#435 @lan-yonghui @ruibaby @guqing
文章设置界面支持重新生成别名。 halo-dev/console#368 @ruibaby
后台评论管理提供日志评论管理的界面。 halo-dev/console#480 @ruibaby
后台菜单分组支持修改分组名。 halo-dev/console#499 @ruibaby
后台个人资料头像修改支持输入链接。 halo-dev/console#505 @ruibaby
后台待审核评论弹框点击评论支持进入评论管理。 halo-dev/console#517 @ruibaby
功能优化
更新 Logo。 halo-dev/console#366 @ruibaby
优化后台编辑文章时的预览体验,预览文章或临时保存内容不会修改已经发布的内容。 #1617 halo-dev/console#439 @guqing @ruibaby
重构后台主题设置界面,提供单独的设置页面,支持展示主题的相关信息。 halo-dev/console#380 @ruibaby
弱化后台登录页面的动画效果。 halo-dev/console#369 @ruibaby
优化后台附件管理列表预览图片样式。 halo-dev/console#374 halo-dev/console#382 @623337308 @cetr
重构后台附件详情界面,取消原有抽屉的设计,改为弹窗。 halo-dev/console#375 halo-dev/console#381 @ruibaby
重构后台文章/自定义页面设置界面,取消原有抽屉的设计,改为弹窗。 halo-dev/console#376 @ruibaby
重构后台操作日志列表界面,取消原有抽屉的设计,提供单独的页面。 halo-dev/console#419 @ruibaby
重构后台图片选择弹框组件,支持直接插入到编辑器,支持多选。 halo-dev/console#420 halo-dev/console#421 @ruibaby
后台文章设置选择标签列表改为根据名称排序。 halo-dev/console#429 @ruibaby
优化后台附件管理中批量操作附件的逻辑。 halo-dev/console#431 @ruibaby
后台使用重构版本的编辑器,编辑区域支持高亮语法,优化数学公式和图表等渲染,优化表格的编辑体验。 halo-dev/console#447 @ruibaby
优化后台登录页面样式。 halo-dev/console#456 @ruibaby
重构后台文章评论列表弹窗。 halo-dev/console#463 @ruibaby
重构后台图库管理页面,支持批量操作图片以及批量从附件库添加图片。 halo-dev/console#468 @ruibaby
重构后台文章管理页面,文章列表将不再展示回收站状态的文章,提供单独的回收站入口。 halo-dev/console#475 @ruibaby
优化后台文章/自定义页面设置的保存逻辑,提供转为发布/草稿的按钮。保存按钮不再影响到文章状态。 halo-dev/console#476 @ruibaby
优化后台折叠菜单的体验,解决折叠时 Logo 和 菜单动画不同步的问题。 halo-dev/console#493 @ruibaby
缓存后台折叠菜单的状态,刷新页面不再会恢复到初始状态。 halo-dev/console#493 @ruibaby
优化后台判断是否初始化的逻辑,修改为每次页面加载只请求一次,切换路由不再请求。 halo-dev/console#495 @ruibaby
重构后台主题设置保存预览功能。 halo-dev/console#502 @ruibaby
重构日志发布功能,使用 Markdown 编辑器替换 textarea,并支持保存前端渲染的 Markdown 结果。 #1739 halo-dev/console#506 @guqing @ruibaby
问题修复
修复重置密码没有校验密码长度的问题。 #1636 halo-dev/console#403 @ruibaby @guqing
修复后台文章设置中无法仅选择父级分类的问题。 halo-dev/console#367 @ruibaby
修复后台菜单管理中移动菜单项到其他分组的时候,导致子菜单丢失的问题。 halo-dev/console#422 @ruibaby
修复评论默认头像因为修改了默认类型但 options 接口没有返回字段导致评论头像无法显示的问题。 #1692 @lan-yonghui
修复后台在文章编辑页面切换左侧菜单收缩的时候出现的样式异常。 halo-dev/console#465 @ruibaby
修复当前版本如果为
alpha版本,安装主题无法通过版本验证的问题。 #1705 @JohnNiang修复后台点击后台 Halo Logo 进入开发者选项过快可能会导致计数为负的问题。 halo-dev/console#492 @ruibaby
修复后台附件列表分页之后,可能会导致无法正常更新图片 dom 导致图片显示为上一页图片的问题。 halo-dev/console#496 @ruibaby
修复后台分类/标签/友情链接修改表单切换修改对象之后没有清除表单验证的问题。 halo-dev/console#501 halo-dev/console#503 @Yorksh1re
修复当前版本如果为
alpha版本,安装主题无法通过版本验证的问题。 #1747 @JohnNiang
依赖更新
升级 Spring Boot 版本。 #1635 #1677 @ruibaby @JohnNiang
halo-dev/halo-admin常规依赖升级。 halo-dev/console#453 halo-dev/console#513 @ruibabyhalo-dev/halo-admin修改用于切换后台样式的 less 依赖 CDN 为 unpkg。后台更新 @halo-dev/editor 版本。 halo-dev/console#507 @ruibaby