#### What type of PR is this?
/area comment
/area core
/kind improvement
#### What this PR does / why we need it:
> 开启了新评论审核设置,如果是在文章页面登录超级管理员账号进行评论,仍然需要在后台进行审核
#### Which issue(s) this PR fixes:
Fixes#5468
#### Does this PR introduce a user-facing change?
```release-note
新增评论设置,允许有评论管理权限的用户发布的评论无需审核
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.14.x
#### What this PR does / why we need it:
在默认富文本编辑器下,当滚动时有概率会使页面小于正常大小。在文章最底部使用 AI 插件更加容易复现。
#### How to test it?
测试文章滚动时是否会小于正常大小,推荐在文章最底部使用 AI 插件来复现和测试。
#### Which issue(s) this PR fixes:
Fixes#3853
#### Does this PR introduce a user-facing change?
```release-note
修复文章编辑页面出现多个滚动条导致的页面高度样式问题。
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
Upgrade Gradle to 8.6 by executing command `./gradlew wrapper --gradle-version=8.6` according to <https://github.com/gradle/gradle/releases/tag/v8.6.0>.
#### Does this PR introduce a user-facing change?
```release-note
升级 Gradle 至 8.6
```
#### What type of PR is this?
/kind improvement
/area ui
/milestone 2.14.x
#### What this PR does / why we need it:
在 `TagSelect` 与 `CategorySelect` 组件中,当搜索的同时允许进行创建新的分类或标签。
#### How to test it?
测试在搜索标签或者分类时,能否创建新的标签或者分类
#### Which issue(s) this PR fixes:
Fixes#4660
#### Does this PR introduce a user-facing change?
```release-note
在搜索标签或分类的同时允许进行创建新的分类或标签
```
添加代码块 dart 语言的高亮
<!-- Thanks for sending a pull request! Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/main/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/main/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->
#### What type of PR is this?
/kind feature
/area editor
<!--
添加其中一个类别:
Add one of the following kinds:
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement
适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:
/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->
#### What this PR does / why we need it:
> 为默认编辑器的代码块导入 dart 语言高亮
#### Which issue(s) this PR fixes:
Fixes#5530
<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.
用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->
```release-note
为需要代码块dart语言高亮的用户提供支持
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.14.x
#### What this PR does / why we need it:
重构文章预览和主题预览的页面加载方式,尝试解决在某些情况下打开预览导致登录 session 失效的问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4047
#### Special notes for your reviewer:
需要测试:
1. 主题预览中的各个功能是否正常。
2. 文章预览功能是否正常。
#### Does this PR introduce a user-facing change?
```release-note
修复在某些情况下,打开文章预览或主题预览之后导致登录失效的问题。
```
#### What type of PR is this?
/kind bug
/area ui
/area editor
/milestone 2.14.x
#### What this PR does / why we need it:
解决默认编辑器中,行内块元素 `image`、`video` 及 `audio` 由于行内块导致其下方有额外一行的问题。
#### How to test it?
查看默认编辑器中上述组件是否还会出现在下方有额外空行的问题。
#### Which issue(s) this PR fixes:
Fixes#5145
#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器行内块元素下具有额外空行的问题
```
#### What type of PR is this?
/kind bug
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
修复主题测评论列表顺序不一致的问题
此问题由 #5505 导致,开启了同时返回回复后,评论列表的顺序出现问题
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area core
/kind improvement
/milestone 2.14.0
#### What this PR does / why we need it:
improve the help tips for system setting options
<img width="612" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/9f97a4d7-09f7-4671-8a4e-f4ab7dc8dcbd">
#### Which issue(s) this PR fixes:
Fixes#5513
#### Does this PR introduce a user-facing change?
```release-note
完善系统设置选项的帮助提示。
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.14.0
#### What this PR does / why we need it:
修复 FormKit 中 code 输入框的类型异常,在此之前如果这样使用:
```vue
<FormKit type="code" v-model="text" />
```
那么 v-model 的类型会不正确。以前忽略了此问题的原因是在之前 code 类型的输入框没有以组件的形式使用过,系统中都是使用 FormKit Schema 调用的。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area editor
/area ui
/kind feature
#### What this PR does / why we need it:
为默认编辑器添加标题输入框。
<img width="1665" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/df903e02-76b0-45fe-89d9-6ac81af8f041">
#### Which issue(s) this PR fixes:
Fixes#5427
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
为默认编辑器添加标题输入框。
```
#### What type of PR is this?
/kind feature
/area core
/milestone 2.14.x
/kind api-change
#### What this PR does / why we need it:
主题端评论列表支持同时获得评论数据
Resolves#5435
#### Does this PR introduce a user-facing change?
```release-note
主题端评论列表支持同时获得评论数据
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
优化评论控制器的实现逻辑以优化代码和性能
Resolves#5435
how to test it?
- 测试删除评论时能正确连同回复一起删除
- 测试评论下的最新回复的已读功能是否正确
- 删除/审核评论,观察主题端和Console端分别显示的评论数量是否正确
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
优化并重新整理文章和自定义页面 Service 的部分代码
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
修复分配通知器权限时一片空白的问题
- 隐藏了原先权限中展示的通知器配置权限选项
- 系统设置的权限中依赖了通知器配置权限,但需要有系统设置管理权限才会展示通知配置的 Tab
Fixes#5492
#### Does this PR introduce a user-facing change?
```release-note
修复仅拥有通知器配置权限时无法修改配置的问题
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.14.x
#### What this PR does / why we need it:
将原来的 Actuator 页面改为 Overview。
#### Which issue(s) this PR fixes:
Fixes#5508
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
This PR collects all Gradle plugin versions into root build.gradle for easy management.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area editor
/area ui
/milestone 2.14.x
#### What this PR does / why we need it:
在默认的富文本编辑器中,使用了 [tiptap link](b3ef574f3d/packages/extension-link/src/link.ts (L127C3-L135C5)) ,而其中的 renderHTML 会对 href 进行处理,但当链接为纯数字的时候,`HTMLAttributes.href` 将不会有 `startsWith` 方法。
此 PR 将在解析 renderHTML 时,将 `HTMLAttributes.href` 转为 string,进而解决这个问题。
#### How to test it?
测试使用默认富文本编辑器时,编写一个链接,并将其设置为纯数字。
刷新页面,查看是否具有报错。
#### Which issue(s) this PR fixes:
Fixes#5478
#### Does this PR introduce a user-facing change?
```release-note
解决在默认富文本编辑器中当链接为纯数字时报错的问题
```
#### What type of PR is this?
/kind bug
/area ui
/milestone 2.14.x
#### What this PR does / why we need it:
解决文章、页面中无法手动填写发布日期的问题
#### How to test it?
测试文章设置与页面设置中的发布日期是否能够使用键盘填写。
需要同步测试其他设置项是否正常。
#### Which issue(s) this PR fixes:
Fixes#5389
#### Does this PR introduce a user-facing change?
```release-note
解决文章设置及页面设置中无法手动填写发布日期的问题
```
#### What type of PR is this?
/kind improvement
/area ui
/area editor
#### What this PR does / why we need it:
重构默认编辑器音频组件。使其支持上传、取消上传、从附件库选择、替换等功能。
#### How to test it?
直接拖动、复制或选择文件上传一个音频,查看是否显示上传进度条,取消、重试功能是否正常
#### Which issue(s) this PR fixes:
Fixes#5239
#### Does this PR introduce a user-facing change?
```release-note
重构编辑器音频组件的上传逻辑,增加选择文件上传、上传进度条、取消、重试等机制。
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
使用索引机制优化回复功能的查询以提高查询速度
#### Does this PR introduce a user-facing change?
```release-note
使用索引机制优化回复功能的查询以提高查询速度
```
#### What type of PR is this?
/kind chore
/area core
#### What this PR does / why we need it:
I get the following errors when I develop Halo in JDK 21:
```bash
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':application:bootRun'.
> Could not resolve all dependencies for configuration ':application:runtimeClasspath'.
> Failed to calculate the value of task ':application:compileJava' property 'javaCompiler'.
> No matching toolchains found for requested specification: {languageVersion=17, vendor=any, implementation=vendor-specific} for MAC_OS on aarch64.
> No locally installed toolchains match and toolchain download repositories have not been configured.
```
This PR removes the Java toolchain configuration and adds source and target compatibility to Java 17, allowing developers to develop Halo in Java 17 or higher versions.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area core
#### What this PR does / why we need it:
优化标签关联的文章数量的更新方式以降低标签太多时对 CPU 的消耗
how to test it?
测试文章关联标签、取消关联、更新关联、删除文章到回收站、彻底删除文章时标签对应的文章可见文章数量和所有文章数量是否正确
#### Does this PR introduce a user-facing change?
```release-note
优化标签关联的文章数量的更新方式以降低标签太多时对 CPU 的消耗
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.14.0
#### What this PR does / why we need it:
附件管理的排序功能支持按照文件名排序。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5028
#### Special notes for your reviewer:
测试方式:
1. 上传若干附件。
2. 测试根据文件名降序/升序功能是否符合预期。
#### Does this PR introduce a user-facing change?
```release-note
附件管理的排序功能支持按照文件名排序。
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.14.0
#### What this PR does / why we need it:
为附件分组设置默认排序规则(按照创建时间升序),和 2.13.0 版本之间保持一致。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5429
#### Special notes for your reviewer:
测试方式:
1. 创建若干附件分组。
2. 观察排序是否符合预期。
#### Does this PR introduce a user-facing change?
```release-note
修复附件管理中的分组排序不固定的问题。
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
使用索引机制优化评论数据查询以提高效率
how to test it?
- 测试 console 评论列表和筛选条件是否正确
- 测试主题端评论显示是否正确
#### Does this PR introduce a user-facing change?
```release-note
使用索引机制优化评论数据查询以提高效率
```
#### What type of PR is this?
/kind improvement
/area editor
/area ui
/milestone 2.14.x
#### What this PR does / why we need it:
将默认富文本编辑器中的链接中的 rel 属性由默认的 `noopener noreferrer nofollow` 属性改为 null,优化 SEO 。
#### How to test it?
查看使用默认富文本编辑器创建的链接,其 rel 属性是否不再是 `noopener noreferrer nofollow`
#### Which issue(s) this PR fixes:
Fixes#5328
#### Does this PR introduce a user-facing change?
```release-note
移除默认富文本编辑器中链接的 nofollow 等属性,优化 SEO。
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
This PR upgrades Pf4j to [3.11.0](https://github.com/pf4j/pf4j/releases/tag/release-3.11.0) regularlly.
#### Does this PR introduce a user-facing change?
```release-note
升级依赖 PF4J 至 3.11.0
```
<!-- Thanks for sending a pull request! Here are some tips for you:
1. 如果这是你的第一次,请阅读我们的贡献指南:<https://github.com/halo-dev/halo/blob/main/CONTRIBUTING.md>。
1. If this is your first time, please read our contributor guidelines: <https://github.com/halo-dev/halo/blob/main/CONTRIBUTING.md>.
2. 请根据你解决问题的类型为 Pull Request 添加合适的标签。
2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request.
3. 请确保你已经添加并运行了适当的测试。
3. Ensure you have added or ran the appropriate tests for your PR.
-->
#### What type of PR is this?
/kind bug
/area core
<!--
添加其中一个类别:
Add one of the following kinds:
/kind bug
/kind cleanup
/kind documentation
/kind feature
/kind improvement
适当添加其中一个或多个类别(可选):
Optionally add one or more of the following kinds if applicable:
/kind api-change
/kind deprecation
/kind failing-test
/kind flake
/kind regression
-->
#### What this PR does / why we need it:
更新邮件模板中查看通知的链接
#### Which issue(s) this PR fixes:
<!--
PR 合并时自动关闭 issue。
Automatically closes linked issue when PR is merged.
用法:`Fixes #<issue 号>`,或者 `Fixes (粘贴 issue 完整链接)`
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
-->
Fixes https://github.com/halo-dev/halo/issues/5458
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
<!--
如果当前 Pull Request 的修改不会造成用户侧的任何变更,在 `release-note` 代码块儿中填写 `NONE`。
否则请填写用户侧能够理解的 Release Note。如果当前 Pull Request 包含破坏性更新(Break Change),
Release Note 需要以 `action required` 开头。
If no, just write "NONE" in the release-note block below.
If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
-->
```release-note
None
```
#### What type of PR is this?
/kind bug
/area core
/milestone 2.14.x
#### What this PR does / why we need it:
修复了索引查询使用含有 OR 条件嵌套 AND 条件时若匹配数据集间无交集导致的查询结果不正确的问题
如伪查询:`or(query, and(otherQuery1, otherQuery2))`
问题描述:当 `query` 匹配的结果与 `and(otherQuery1, otherQuery2)` 匹配的结果无交集时 and 会将自身不匹配的数据剔除导致 `query` 无法匹配到而出现缺少数据的问题
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area editor
/area ui
/kind feature
/milestone 2.14.x
#### What this PR does / why we need it:
为默认富文本编辑器中的表格,增加全选快捷键。具体操作逻辑如下:
1. 当光标处于表格中单元格内时,按 `Mod + a` 全选快捷键后,若未选中当前单元格,则选中单元格。
2. 若其中包含有其他影响全选快捷键的组件,则以组件自身为准,例如代码块中的全选。
3. 若已经选中单元格,则再次按全选快捷键,选中整个表格。
4. 若已经选中表格,则再按全选快捷键不会触发其他全选事件。
#### How to test it?
按照操作逻辑测试全选快捷键逻辑是否无误。是否与其他快捷键产生冲突。
#### Which issue(s) this PR fixes:
Fixes#5438
#### Does this PR introduce a user-facing change?
```release-note
为富文本编辑器中的表格组件增加全选快捷键
```
#### What type of PR is this?
/kind cleanup
#### What this PR does / why we need it:
Not long ago, we announced the cessation of maintenance for 1.x at <https://www.halo.run/archives/halo-1.x-eol>. So we also need to to synchronize changes to security policies.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
Bump version to 2.14 to prepare for developing 2.14. This always happens after new version is released.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area editor
/area ui
/milestone 2.14.x
#### What this PR does / why we need it:
使用默认编辑器时,当图片、视频中具有 `file` 属性时,进入编辑界面时会报错。此 PR 将不再从渲染后的 HTML 中获取 file 属性,并且在渲染 HTML 时,抛弃掉 file 属性用于解决这个问题。
#### How to test it?
测试图片上传、视频上传功能不受影响即可。
#### Which issue(s) this PR fixes:
Fixes#5430
#### Does this PR introduce a user-facing change?
```release-note
修复进入文章页面会偶现错误提示的问题
```
#### What type of PR is this?
/area editor
/area ui
/kind bug
/milestone 2.14.x
#### What this PR does / why we need it:
在当前富文本编辑器中,当做出使图片、视频等组件需要重绘的事件时,会导致已经上传的文件重复上传。
本 PR 在上传完成后,将图片、视频组件 `file` 设置为空,用于解决此问题。
#### How to test it?
1. 使用复制、粘贴的方式在富文本编辑器中添加图片、视频
2. 将上传的图片、视频所处位置进行变更(需要向当前位置往后移动)。
3. 查看已上传的图片、视频是否会重复上传。
#### Which issue(s) this PR fixes:
Fixes#5436
#### Does this PR introduce a user-facing change?
```release-note
解决富文本编辑器中已上传的图片及视频会重复上传的问题
```
#### What type of PR is this?
/area core
/milestone 2.13.0
/kind improvement
#### What this PR does / why we need it:
更新预设插件的版本。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.13.x
#### What this PR does / why we need it:
升级 FormKit 的依赖版本至 1.5.x
Please see https://formkit.com/changelog#_150
#### Does this PR introduce a user-facing change?
```release-note
升级 FormKit 的依赖版本至 1.5.x
```
### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
### What this PR does / why we need it:
使用索引机制优化通知和订阅查询以提高性能
how to test it
测试通知列表不报错即可
### Does this PR introduce a user-facing change?
```release-note
使用索引机制优化通知和订阅查询以提高性能
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
This PR checks dependencies while installing and upgrading plugins.
Steps to test:
1. Prepare a plugin with dependencies.
```diff
apiVersion: plugin.halo.run/v1alpha1
kind: Plugin
metadata:
name: a-plugin
...
+ pluginDependencies:
+ app-store-integration: 1.*
```
2. Build the plugin.
3. Try to uninstall `app-store` plugin.
4. Install `a-plugin`.
5. See the result
#### Which issue(s) this PR fixes:
Fixes#5345
#### Does this PR introduce a user-facing change?
```release-note
插件安装和更新时检查依赖是否合法
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.13.0
#### What this PR does / why we need it:
优化登录相关页面的布局,修复在不同分辨率下的样式问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5346
#### Special notes for your reviewer:
测试登录或者注册页面,任意放大或者缩小页面,观察页面样式是否正常。
#### Does this PR introduce a user-facing change?
```release-note
优化登录相关页面的布局,修复在不同分辨率下的样式问题。
```
#### What type of PR is this?
/area core
/kind improvement
/milestone 2.13.0
#### What this PR does / why we need it:
为用户设置中 **注册需验证邮箱** 选项添加提示。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
构建查询视图时只选择被使用到的索引字段
how to test it?
验证文章和附件列表的查询条件和排序条件不会报错即可
#### Does this PR introduce a user-facing change?
```release-note
优化查询视图构建只选择被使用到的索引字段构建查询视图
```
#### What type of PR is this?
/kind improvement
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
使用索引机制优化用户查询以提高性能
#### Does this PR introduce a user-facing change?
```release-note
使用索引机制优化用户查询以提高性能
```
#### What type of PR is this?
/kind improvement
#### What this PR does / why we need it:
移除 issue 模板中的 **在线站点地址** 输入框,在正常情况下,系统信息中已经包含了外部访问地址。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area console
/area editor
/milestone 2.13.x
#### What this PR does / why we need it:
重构默认编辑器视频组件。使其支持上传、取消上传、从附件库选择、替换等功能。
#### How to test it?
直接拖动、复制或选择文件上传一个视频,查看是否显示上传进度条,取消、重试功能是否正常
#### Which issue(s) this PR fixes:
Fixes#5240
#### Does this PR introduce a user-facing change?
```release-note
重构编辑器视频组件的上传逻辑,增加选择文件上传、上传进度条、取消、重试等机制。
```
#### What type of PR is this?
/kind bug
/area plugin
/area core
/milestone 2.13.x
#### What this PR does / why we need it:
Fix the problem of updating plugin extensions incorrectly.
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5394
#### Does this PR introduce a user-facing change?
```release-note
None
```