距离我们 2020 年 9 月 24 号发布 1.4.0 已经过去了 545 天了,期间虽然有一些版本更新,但大多数都是 patch 修复版本。终于,在今天正式发布 1.5.0 版本。其中带来了大量的优化更新,下面为大家简单介绍一些亮点功能,详细更新日志可在本文末尾查阅。
在此版本中,新增了 contents
表专门用于存储文章内容。因为在以前的版本中,当站点有大量文章的时候会出现明显拖慢页面渲染速度的情况,这是因为在之前的版本中,查询文章列表会将内容字段也包含在其中,这就会导致数据越多就会越慢。所以在这个版本中,原本的 posts
表就不再包含 originalContent
和 formatContent
字段,在列表查询的时候也不会包含。需要注意的是,如果你是从 1.4 版本升级的话,目前我们是没有自动清空这两个字段的内容的。当然,你可以手动清空,以获得更好的效果。
性能对比:
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 的标签颜色。这样可以比较直观地区分不同的标签。
重构了批量操作的逻辑,目前已经不需要提前通过文章状态筛选文章之后才能批量选择。可以任意批量选择之后进行文章状态的批量操作。
文章列表不再展示回收站的文章,改为单独为回收站提供一个入口。
文章设置弹窗进行了重构,改为更直观地显示方式,并且可以在弹窗中进行上下篇的切换。可以非常快速的预览文章设置并进行对文章设置的修改。
目前支持将鼠标放在附件项即可显示勾选图标,不再需要提前进入批量管理功能。
附件详情也和文章设置一样,修改为弹窗的形式,可以进行上下项的快速切换,方便预览以及进行修改删除等操作。
主题设置由原来的全屏抽屉形式改为单独的页面。并优化了布局,不再显示主题缩略图,将更多的空间留给设置表单。同时在界面上也展示了主题的相关信息。
评论表单中的邮箱地址不再作为必填项。 halo-dev/halo#1535 @jerry-shao
重构文章表结构。
contents
表存储文章内容,将不再使用 posts
表中的 originalContent
和 formatContent
字段。 halo-dev/halo#1617 @guqingformatContent
已经废弃,将在下一个大版本中移除。后续使用 content
字段代替。 halo-dev/halo#1617 @guqingcontent_patch_logs
表用于存储变更记录。 halo-dev/halo#1617 @guqing后台使用 @halo-dev/admin-api 进行接口请求。 halo-dev/halo-admin#378 @ruibaby @guqing
修改后台页面标题后缀,由 Halo Dashboard
改为 Halo
。 halo-dev/halo-admin#426 @ruibaby
默认后台布局改为左侧菜单布局。 halo-dev/halo-admin#441 @ruibaby
重构文章/自定义页面编辑逻辑,改为保存前端渲染内容,放弃后端渲染。 halo-dev/halo-admin#439 halo-dev/halo-admin#440 halo-dev/halo-admin#449 halo-dev/halo#1668 @ruibaby @guqing
Content API 的评论列表接口不再返回 ipAddress
和 email
字段。 halo-dev/halo#1729 @guqing
themeId
获取主题详情和设置的接口。 halo-dev/halo#1660 @guqingalpha
版本,安装主题无法通过版本验证的问题。 halo-dev/halo#1705 @JohnNiangalpha
版本,安装主题无法通过版本验证的问题。 halo-dev/halo#1747 @JohnNianghalo-dev/halo-admin
常规依赖升级。 halo-dev/halo-admin#453 halo-dev/halo-admin#513 @ruibabyhalo-dev/halo-admin
修改用于切换后台样式的 less 依赖 CDN 为 unpkg。