# 插件转换工具使用指南

## 工具说明

插件转换工具用于将单个 Certd 插件转换为 YAML 配置文件，方便插件的注册和管理。

## 工具位置

`.trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js`

## 使用方法

### 基本用法

```bash
node .trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js <插件文件路径>
```

### 示例

#### 转换 Access 插件

```bash
node .trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js packages/ui/certd-server/src/plugins/plugin-demo/access.js
```

#### 转换 Task 插件

```bash
node .trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js packages/ui/certd-server/src/plugins/plugin-demo/plugins/plugin-test.js
```

#### 转换 DNS Provider 插件

```bash
node .trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.js
```

## 转换过程

1. **加载插件模块**：使用 `import()` 动态加载指定的插件文件
2. **分析插件定义**：检查模块导出的对象，寻找带有 `define` 属性的插件
3. **识别插件类型**：根据插件的继承关系或属性识别插件类型
4. **生成 YAML 配置**：基于插件定义生成标准的 YAML 配置
5. **保存配置文件**：将生成的配置保存到 `./metadata` 目录

## 输出说明

### 命令行输出

执行转换命令后，工具会输出以下信息：

- 插件加载状态
- 插件导出的对象列表
- 插件类型识别结果
- 生成的 YAML 配置内容
- 配置文件保存路径

### 配置文件命名规则

生成的配置文件命名规则为：

```
<插件类型>[_<子类型>]_<插件名称>.yaml
```

例如：
- `access_demo.yaml`（Access 插件）
- `deploy_DemoTest.yaml`（Task 插件）
- `dnsProvider_demo.yaml`（DNS Provider 插件）

## 示例输出

### 转换 Access 插件示例

```bash
$ node .trae/skills/plugin-converter/resources/convert-plugin-to-yaml.js packages/ui/certd-server/src/plugins/plugin-demo/access.js
开始转换插件: packages/ui/certd-server/src/plugins/plugin-demo/access.js
插件模块导出了 1 个对象: DemoAccess
处理插件: DemoAccess
插件类型: access
脚本路径: packages/ui/certd-server/src/plugins/plugin-demo/access.js

生成的 YAML 配置:
name: demo
title: 授权插件示例
desc: 这是一个示例授权插件，用于演示如何实现一个授权插件
icon: clarity:plugin-line
pluginType: access
type: builtIn
scriptFilePath: packages/ui/certd-server/src/plugins/plugin-demo/access.js

YAML 配置已保存到: ./metadata/access_demo.yaml
插件转换完成!
```