Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: update plugin structure doc #447

Merged
merged 1 commit into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 14 additions & 13 deletions docs/developer-guide/plugin/basics/structure.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: 插件项目结构
description: 了解插件项目的文件结构
---

新创建的插件项目典型的目录结构如下所示
当你创建一个新的插件项目时,典型的目录结构如下所示

```text
├── ui
Expand Down Expand Up @@ -43,27 +43,28 @@ description: 了解插件项目的文件结构
└── settings.gradle
```

该目录包含了前端和后端两个部分,让我们依次看一下它们中的每一个
此目录结构划分为前端和后端两部分,下面我们将分别进行详细说明

### 后端部分

所有的后端代码都放在 `src` 目录下,它是一个常规的 `Java` 项目目录结构。
`src` 目录中存放的是后端代码,这部分遵循标准的 Java 项目结构。以下是各个文件和文件夹的说明:

- `StarterPlugin.java` 为插件的后端入口示例文件,类名可以任意但它必须继承 `run.halo.app.plugin.BasePlugin` 类来标记它作为插件入口
- `resources` 下的 `plugin.yaml` 为插件的资源描述文件,它是必须的,它描述了插件的基本信息,包括插件的名称、版本、作者、描述、依赖等
- `resources/console` 下的两个文件 `main.js` 和 `style.css` 是前端插件部分打包时输出的产物。一个插件可以没有前端部分,因此 `resources/console` 同样可以不存在
- `StarterPlugin.java`:插件后端的入口文件,位于 `src/main/java/run/halo/starter` 路径下。你可以根据需要修改包名和类名,但需要确保该类继承 `run.halo.app.plugin.BasePlugin`,以指定其为插件的入口
- `plugin.yaml`:这是插件的描述文件,位于 `src/main/resources` 目录下。该文件是必须的,包含插件的基本信息,如插件名称、版本、作者、描述以及依赖等内容
- `resources/console`: 该文件夹通常包含前端部分打包后生成的文件,包括 main.js(JavaScript 文件)和 style.css(样式表)。如果插件不包含前端部分,此目录可以忽略

:::warning 注意
从 2.11 开始,Halo 支持了 UC 个人中心,且个人中心和 Console 的插件机制共享,所以为了避免歧义,`resources/console` 在后续版本会被重命名为 `resources/ui`,但同时也会兼容 `resources/console`。
:::

### 前端部分

`ui` 目录下为插件的前端部分的工程目录,包括了源码、配置文件和静态资源文件。
同样的,将所有前端项目源码放到 `src` 中。我们建议使用 `TypeScript` 作为编程语言,它可以帮助你在编译时而非运行时捕获错误。
`ui` 目录下存放插件的前端代码和相关资源,前端部分通常采用 Vue 作为开发框架,并推荐使用 TypeScript 作为主要语言,这有助于在编译阶段捕获潜在错误。

- `src/index.ts` 作为前端部分的插件的入口文件。
- `views` 中存放视图文件。
- `styles` 中存放样式。
- `components` 中放一些公共组件。
- `assets` 用于放静态资源文件。
以下是前端部分各文件夹和文件的说明:

- `src/index.ts`:作为前端部分的插件的入口文件。
- `views`:用于存放 Vue 组件的页面视图文件。
- `styles`:用于存放全局样式和自定义 CSS 文件。
- `components`:推荐创建该目录以放置可复用的公共组件,便于插件项目的模块化和维护。
- `assets`:存放静态资源文件,如图片、图标等。
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: 插件项目结构
description: 了解插件项目的文件结构
---

新创建的插件项目典型的目录结构如下所示
当你创建一个新的插件项目时,典型的目录结构如下所示

```text
├── ui
Expand Down Expand Up @@ -43,27 +43,28 @@ description: 了解插件项目的文件结构
└── settings.gradle
```

该目录包含了前端和后端两个部分,让我们依次看一下它们中的每一个
此目录结构划分为前端和后端两部分,下面我们将分别进行详细说明

### 后端部分

所有的后端代码都放在 `src` 目录下,它是一个常规的 `Java` 项目目录结构。
`src` 目录中存放的是后端代码,这部分遵循标准的 Java 项目结构。以下是各个文件和文件夹的说明:

- `StarterPlugin.java` 为插件的后端入口示例文件,类名可以任意但它必须继承 `run.halo.app.plugin.BasePlugin` 类来标记它作为插件入口
- `resources` 下的 `plugin.yaml` 为插件的资源描述文件,它是必须的,它描述了插件的基本信息,包括插件的名称、版本、作者、描述、依赖等
- `resources/console` 下的两个文件 `main.js` 和 `style.css` 是前端插件部分打包时输出的产物。一个插件可以没有前端部分,因此 `resources/console` 同样可以不存在
- `StarterPlugin.java`:插件后端的入口文件,位于 `src/main/java/run/halo/starter` 路径下。你可以根据需要修改包名和类名,但需要确保该类继承 `run.halo.app.plugin.BasePlugin`,以指定其为插件的入口
- `plugin.yaml`:这是插件的描述文件,位于 `src/main/resources` 目录下。该文件是必须的,包含插件的基本信息,如插件名称、版本、作者、描述以及依赖等内容
- `resources/console`: 该文件夹通常包含前端部分打包后生成的文件,包括 main.js(JavaScript 文件)和 style.css(样式表)。如果插件不包含前端部分,此目录可以忽略

:::warning 注意
从 2.11 开始,Halo 支持了 UC 个人中心,且个人中心和 Console 的插件机制共享,所以为了避免歧义,`resources/console` 在后续版本会被重命名为 `resources/ui`,但同时也会兼容 `resources/console`。
:::

### 前端部分

`ui` 目录下为插件的前端部分的工程目录,包括了源码、配置文件和静态资源文件。
同样的,将所有前端项目源码放到 `src` 中。我们建议使用 `TypeScript` 作为编程语言,它可以帮助你在编译时而非运行时捕获错误。
`ui` 目录下存放插件的前端代码和相关资源,前端部分通常采用 Vue 作为开发框架,并推荐使用 TypeScript 作为主要语言,这有助于在编译阶段捕获潜在错误。

- `src/index.ts` 作为前端部分的插件的入口文件。
- `views` 中存放视图文件。
- `styles` 中存放样式。
- `components` 中放一些公共组件。
- `assets` 用于放静态资源文件。
以下是前端部分各文件夹和文件的说明:

- `src/index.ts`:作为前端部分的插件的入口文件。
- `views`:用于存放 Vue 组件的页面视图文件。
- `styles`:用于存放全局样式和自定义 CSS 文件。
- `components`:推荐创建该目录以放置可复用的公共组件,便于插件项目的模块化和维护。
- `assets`:存放静态资源文件,如图片、图标等。