-
-### repeater
-
-#### 描述
-
-一组重复的输入组件,可以用于定义一组数据,最终得到的数据为一个对象的数组,可以方便地让使用者对其进行增加、移除、排序等操作。
-
-#### 参数
-
-- `min`:数组最小要求数量,默认为 `0`
-- `max`:数组最大容量,默认为 `Infinity`,即无限制
-- `addButton`:是否显示添加按钮
-- `addLabel`:添加按钮的文本
-- `upControl`:是否显示上移按钮
-- `downControl`:是否显示下移按钮
-- `insertControl`:是否显示插入按钮
-- `removeControl`:是否显示移除按钮
-
-#### 示例
-
-```yaml
-- $formkit: repeater
- name: socials
- label: 社交账号
- value: []
- max: 5
- min: 1
- children:
- - $formkit: select
- name: enabled
- id: enabled
- label: 是否启用
- options:
- - label: 是
- value: true
- - label: 否
- value: false
- - $formkit: text
- # 在 Repeater 中进行条件判断的方式,当 enabled 为 true 时才显示
- if: "$value.enabled === true",
- name: name
- label: 名称
- value: ""
- - $formkit: text
- if: "$value.enabled === true",
- name: url
- label: 地址
- value: ""
-```
-
-:::tip
-使用 `repeater` 类型时,一定要设置默认值,如果不需要默认有任何元素,可以设置为 `[]`。
-:::
-
-其中 `name` 和 `url` 即数组对象的属性,最终保存表单之后得到的值为以下形式:
-
-```json
-{
- "socials": [
- {
- "name": "GitHub",
- "url": "https://github.com/halo-dev"
- }
- ]
-}
-```
-
-UI 效果:
-
-
-
-### attachment
-
-#### 描述
-
-附件类型的输入框,支持直接调用附件库弹框选择附件。
-
-#### 参数
-
-- `accepts`:文件类型,数据类型为 `string[]`
-- `min`:最小文件数量
-- `max`:最大文件数量
-
-#### 示例
-
-```yaml
-- $formkit: attachment
- name: logo
- label: Logo
- accepts:
- - "image/png"
- - "video/mp4"
- - "audio/*"
- value: ""
-```
-
-### code
-
-#### 描述
-
-代码编辑器的输入组件,集成了 [Codemirror](https://codemirror.net/)。
-
-#### 参数
-
-- `language`:代码语言,目前支持 `yaml` `html` `javascript` `css` `json`。
-- `height`:代码编辑器的高度。
-
-#### 示例
-
-```yaml
-- $formkit: code
- name: footer_code
- label: 页脚代码注入
- value: ""
- language: yaml
-```
-
-### menuCheckbox
-
-#### 描述
-
-菜单复选框,用于选择系统内的导航菜单。其中选择的值为菜单资源 `metadata.name` 的集合。
-
-#### 示例
-
-```yaml
-- $formkit: menuCheckbox
- name: menus
- label: 菜单
- value: []
-```
-
-### menuRadio
-
-#### 描述
-
-菜单单选框,用于选择系统内的导航菜单。其中选择的值为菜单资源 `metadata.name`。
-
-#### 示例
-
-```yaml
-- $formkit: menuRadio
- name: menu
- label: 菜单
- value: ""
-```
-
-### postSelect
-
-#### 描述
-
-文章选择器,用于选择系统内的文章。其中选择的值为文章资源 `metadata.name`。
-
-#### 示例
-
-```yaml
-- $formkit: postSelect
- name: post
- label: 文章
- value: ""
-```
-
-### singlePageSelect
-
-#### 描述
-
-单页选择器,用于选择系统内的独立页面。其中选择的值为独立页面资源 `metadata.name`。
-
-#### 示例
-
-```yaml
-- $formkit: singlePageSelect
- name: singlePage
- label: 单页
- value: ""
-```
-
-### categorySelect
-
-#### 描述
-
-文章分类选择器,用于选择系统内的文章分类。其中选择的值为文章分类资源 `metadata.name`。
-
-#### 示例
-
-```yaml
-- $formkit: categorySelect
- name: category
- label: 分类
- value: ""
-```
-
-### categoryCheckbox
-
-#### 描述
-
-文章分类复选框,用于选择系统内的文章分类。其中选择的值为文章分类资源 `metadata.name` 的集合。
-
-#### 示例
-
-```yaml
-- $formkit: categoryCheckbox
- name: categories
- label: 分类
- value: []
-```
-
-### tagSelect
-
-#### 描述
-
-文章标签选择器,用于选择系统内的文章标签。其中选择的值为文章标签资源 `metadata.name`。
-
-#### 示例
-
-```yaml
-- $formkit: tagSelect
- name: tag
- label: 标签
- value: ""
-```
-
-### tagCheckbox
-
-#### 描述
-
-文章标签复选框,用于选择系统内的文章标签。其中选择的值为文章标签资源 `metadata.name` 的集合。
-
-#### 示例
-
-```yaml
-- $formkit: tagCheckbox
- name: tags
- label: 标签
- value: []
-```
diff --git a/versioned_docs/version-2.18/developer-guide/plugin/api-reference/server/extension-client.md b/versioned_docs/version-2.18/developer-guide/plugin/api-reference/server/extension-client.md
deleted file mode 100644
index ce6e994a..00000000
--- a/versioned_docs/version-2.18/developer-guide/plugin/api-reference/server/extension-client.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-title: 与自定义模型交互
-description: 了解如何通过代码的方式操作数据
----
-
-Halo 提供了两个类用于与自定义模型对象交互 `ExtensionClient` 和 `ReactiveExtensionClient`。
-
-它们提供了对自定义模型对象的增删改查操作,`ExtensionClient` 是阻塞式的用于后台任务如控制器中操作数据,而 `ReactiveExtensionClient` 返回值都是 Mono 或 Flux 是反应式非阻塞的,它们由 [reactor](https://projectreactor.io/) 提供。
-
-```java
-public interface ReactiveExtensionClient {
-
- // 已经过时,建议使用 listBy 或 listAll 代替
-