#### What type of PR is this?
/kind bug
/area editor
/milestone 2.18.x
#### What this PR does / why we need it:
此 PR 解决了使用高亮插件之后按 `up` 或 `down` 按键被阻止的问题。
此问题的来源为 https://github.com/halo-sigs/richtext-editor/pull/56 ,在此前的 PR 中为了解决设置字体大小后再次设置高亮,会导致高亮无法完全笼罩字体的问题。
但经过仔细排查,发现上述问题之前的解决方式有误,正确的原因应该是设置字体大小的 `span` 标签与设置高亮的 `mark` 标签顺序相反导致。如下所示:
<img width="1019" alt="image" src="https://github.com/user-attachments/assets/90c0926e-caab-40b6-91ae-97c075ef7225">
正确的情况应该是在 `span` 中包裹 `mark`。此 PR 提升了 `TextStyle` 的优先级,结果如下所示:
<img width="1022" alt="image" src="https://github.com/user-attachments/assets/e5e61d54-defd-493b-818c-c09faf55a7c1">
#### How to test it?
测试对文本使用高亮功能之后按 `up` 或 `down` 按键是否生效。
测试对在文本设置大小之后,使用高亮、删除线等样式是否正确。
#### Which issue(s) this PR fixes:
Fixes#6381
#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器中对文本使用高亮会导致按键被阻止的问题
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.18.x
#### What this PR does / why we need it:
目前当编辑器中列表内容为空时,需要按退格键多次才能删除掉此列表内容。
本 PR 在执行单行删除逻辑之前,会检查列表是否处于活动状态,如果是则不再执行单行删除的逻辑。列表会执行 ListKeyMap 相关快捷键。
#### How to test it?
1. 在默认富文本键入一个列表。
2. 使用退格键删除这个列表。
3. 查看是否可以一次就删除。
#### Which issue(s) this PR fixes:
Fixes#6389
#### Does this PR introduce a user-facing change?
```release-note
修复默认编辑器中列表项需要按多次退格键才可以删除的问题
```
#### What type of PR is this?
/area editor
/kind improvement
/milestone 2.18.x
#### What this PR does / why we need it:
移除编辑器 Column 的默认 padding 样式。
See https://github.com/halo-dev/halo/issues/6377#issue-2428912807
#### Which issue(s) this PR fixes:
Fixes#6377
#### Does this PR introduce a user-facing change?
```release-note
移除编辑器分栏卡片的默认 padding 样式。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.18.x
#### What this PR does / why we need it:
为个人中心发布文章的操作添加重试机制,方式后端因为乐观锁出现异常错误。
#### Which issue(s) this PR fixes:
Fixes#6349
#### Does this PR introduce a user-facing change?
```release-note
为个人中心发布文章的操作添加重试机制,方式后端因为乐观锁出现异常错误。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.18.x
#### What this PR does / why we need it:
升级 tiptap 的相关依赖至 2.5.7。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.18.x
#### What this PR does / why we need it:
修改附件选择组件的默认显示数量,以解决因为图片数量过多或者图片过大导致的卡顿问题。
#### Which issue(s) this PR fixes:
Ref https://github.com/halo-dev/halo/issues/6352
#### Does this PR introduce a user-facing change?
```release-note
修改附件选择组件的默认显示数量,以解决因为图片数量过多或者图片过大导致的卡顿问题。
```
#### What type of PR is this?
/kind feature
/area editor
#### What this PR does / why we need it:
支持在默认编辑器中使用 Tab 键实现首行缩进的功能。
当光标处于文本首行时,按下 Tab 键会触发首行缩进。
在首行缩进的情况下或者选中一段文本,再次按下 Tab 键会触发整段缩进。
#### How to test it?
测试文本块及区域标题块首行按下 Tab 键是否可以正常触发首行缩进
#### Which issue(s) this PR fixes:
Fixes#6316
#### Does this PR introduce a user-facing change?
```release-note
默认编辑器增加 Tab 快捷键首行缩进功能
```
#### What type of PR is this?
/kind cleanup
/area core
#### What this PR does / why we need it:
Regenerate API docs and client to prevent unrelated changes from other PRs.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.18.x
#### What this PR does / why we need it:
使用组合输入时,按下回车键不再执行编辑器获取焦点的事件。
#### Which issue(s) this PR fixes:
Fixes#6345
#### Does this PR introduce a user-facing change?
```release-note
解决默认编辑器标题在使用组合输入时,按下回车键会导致其失去焦点的问题。
```
#### What type of PR is this?
/kind bug
/area editor
/milestone 2.18.x
#### What this PR does / why we need it:
在默认编辑器中,选中一个跨多个节点的 text 时,selection 会变为 RangeSelection,此时冒泡菜单将不会出现。
此 RP 将 RangeSelection 添加至 text 的冒泡菜单验证中,使得冒泡菜单可以出现。
#### How to test it?
测试跨行选中多个无序列表时,是否出现冒泡菜单。
#### Which issue(s) this PR fixes:
Fixes#6267
#### 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:
This PR bumps Halo version into 2.18.0 for next development iteration.
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
优化插件扩展管理页面的 UI 权限,限制只有超级管理员才能访问。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind cleanup
#### What this PR does / why we need it:
重新生成 api client,移除无用的文件。并且此 PR 改进了生成的脚本,会在生成前删除旧的 api client 文件,保证不会遗留旧文件。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
完善插件扩展设置页面:
1. 完善 i18n。
2. 将入口移动至插件页面右上角的操作按钮区域。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.17.x
#### What this PR does / why we need it:
补充 2FA 相关的 i18n 定义。
#### Does this PR introduce a user-facing change?
```release-note
None
```
<!-- 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?
<!--
添加其中一个类别:
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
-->
/area ui
/kind improvement
#### What this PR does / why we need it:
当前多选框disabled与非disabled样式上无区别,不好分辨。
#### 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/5974
#### Special notes for your reviewer:
![image](https://github.com/halo-dev/halo/assets/28662535/f3a3b683-4964-4701-a14e-3b12b0af26c1)
#### 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
增加多选框disabled样式
```
#### What type of PR is this?
/area core
/kind bug
/milestone 2.17.x
#### What this PR does / why we need it:
修复 Device 模型中,Kind 定义错误的问题。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/6221
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.17.x
#### What this PR does / why we need it:
支持在文章编辑页面创建文章时,也应用别名生成规则
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5118
Fixes https://github.com/halo-dev/halo/issues/6155
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
支持在文章编辑页面创建文章时,也应用别名生成规则
```
#### What type of PR is this?
/kind bug
/area ui
/milestone 2.17.x
#### What this PR does / why we need it:
修复 Secret Input 保存之后会多出 Secret Form 中数据的问题。
#### Which issue(s) this PR fixes:
Fixes#6193
#### Special notes for your reviewer:
测试方式:
1. 在保存 Secret 的表单选项前,打开一次编辑 Secret 的对话框。
2. 保存数据,检查内容是否多出了其他数据。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
#### What this PR does / why we need it:
#### Which issue(s) this PR fixes:
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area core
/kind api-change
/milestone 2.17.x
#### What this PR does / why we need it:
移除内置的页面静态缓存功能,后续将由 https://github.com/halo-sigs/plugin-page-cache 插件提供。
#### Which issue(s) this PR fixes:
Fixes#5639
#### Special notes for your reviewer:
#### Does this PR introduce a user-facing change?
```release-note
移除内置的页面静态缓存功能,后续由 https://github.com/halo-sigs/plugin-page-cache 插件提供。
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
添加对菜单的限制,不能删除已经设置为主菜单的菜单。
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/4956
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind feature
/milestone 2.17.x
#### What this PR does / why we need it:
支持手动为文章设置作者。
<img width="734" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/b91b1754-4f50-4333-8478-6735d5846847">
#### Which issue(s) this PR fixes:
Fixes https://github.com/halo-dev/halo/issues/5720
#### 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 editor
/milestone 2.17.x
#### What this PR does / why we need it:
为图片跳转链接增加在新窗口打开的选项。
#### How to test it?
测试新窗口打开是否正常可用。
#### Which issue(s) this PR fixes:
Fixes#6109
#### Does this PR introduce a user-facing change?
```release-note
默认编辑器图片跳转链接支持配置新窗口打开
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.17.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 editor
/milestone 2.17.x
#### What this PR does / why we need it:
为默认编辑器代码块增加折叠功能。
<img width="892" alt="image" src="https://github.com/halo-dev/halo/assets/31335418/8325cba9-08ce-4bd7-98b6-6bc28fe52daf">
#### How to test it?
测试折叠功能是否可用。
测试重新打开文章之后代码块是否仍旧处于折叠状态。
#### Which issue(s) this PR fixes:
Fixes#6166
#### Does this PR introduce a user-facing change?
```release-note
为默认编辑器代码块增加折叠功能
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.17.x
#### What this PR does / why we need it:
Fix the vue injection warn in browser console
<img width="559" alt="image" src="https://github.com/halo-dev/halo/assets/21301288/4160cbe4-fe8b-4b30-a1db-57d35d78e4f9">
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind documentation
/milestone 2.17.x
#### What this PR does / why we need it:
更新 `@halo-dev/api-client` 包的 readme。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area editor
/milestone 2.17.x
#### What this PR does / why we need it:
由于 RangeSelection 可能将一些并不想展示为模拟选中效果的节点进行了转换,因此将 RangeSelection 中模拟选中的效果,由默认的自动设置为 true,变为 false。
之后需要由节点自行设置 `fakeSelection: true` 后才会展示为模拟选中的效果,否则保持原本的选择样式。
#### How to test it?
测试使用 Mod-a 全选后,listItem 等节点是否会展示为模拟选中的效果。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind bug
/milestone 2.17.x
#### What this PR does / why we need it:
修复在扩展点设置页面切换扩展点定义后,扩展定义的选项被清空的问题。
#### Which issue(s) this PR fixes:
Fixes#6164
#### Does this PR introduce a user-facing change?
```release-note
修复在扩展点设置页面切换扩展点定义后,扩展定义的选项被清空的问题。
```
#### What type of PR is this?
/area ui
/kind bug
#### What this PR does / why we need it:
修复 https://github.com/halo-dev/halo/pull/6152 中因为改动了 css 文件的导入顺序带来的样式问题。
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/area ui
/kind improvement
/milestone 2.17.x
#### What this PR does / why we need it:
重新组织和固定 UI 部分代码的 imports 导入,防止后续因为 imports 的顺序造成不必要的 diff。
基于:https://github.com/halo-dev/halo/pull/6151
#### Does this PR introduce a user-facing change?
```release-note
None
```
#### What type of PR is this?
/kind improvement
/area editor
/milestone 2.17.x
#### What this PR does / why we need it:
在用户设置 iframe 相关的 src 时,检测设置的链接是否符合白名单。如果不符合则不允许设置。
see https://github.com/ueberdosis/tiptap/pull/5160
#### How to test it?
测试在 iframe 中的 src 输入 `javascript: alert("1")` 时是否会触发 javascript
#### Does this PR introduce a user-facing change?
```release-note
处理默认编辑器中 iframe 标签的 src 属性可能存在的风险
```