manifest说明文档
This commit is contained in:
@@ -147,7 +147,7 @@ python scripts/manifest_tool.py validate src/plugins/my_plugin
|
|||||||
## 📋 字段说明
|
## 📋 字段说明
|
||||||
|
|
||||||
### 基本信息
|
### 基本信息
|
||||||
- `manifest_version`: manifest格式版本,当前为3
|
- `manifest_version`: manifest格式版本,当前为1
|
||||||
- `name`: 插件显示名称(必需)
|
- `name`: 插件显示名称(必需)
|
||||||
- `version`: 插件版本号(必需)
|
- `version`: 插件版本号(必需)
|
||||||
- `description`: 插件功能描述(必需)
|
- `description`: 插件功能描述(必需)
|
||||||
@@ -165,10 +165,12 @@ python scripts/manifest_tool.py validate src/plugins/my_plugin
|
|||||||
- `categories`: 分类数组(可选,建议填写)
|
- `categories`: 分类数组(可选,建议填写)
|
||||||
|
|
||||||
### 兼容性
|
### 兼容性
|
||||||
- `host_application`: 主机应用兼容性(可选)
|
- `host_application`: 主机应用兼容性(可选,建议填写)
|
||||||
- `min_version`: 最低兼容版本
|
- `min_version`: 最低兼容版本
|
||||||
- `max_version`: 最高兼容版本
|
- `max_version`: 最高兼容版本
|
||||||
|
|
||||||
|
⚠️ 在不填写的情况下,插件将默认支持所有版本。**(由于我们在不同版本对插件系统进行了大量的重构,这种情况几乎不可能。)**
|
||||||
|
|
||||||
### 国际化
|
### 国际化
|
||||||
- `default_locale`: 默认语言(可选)
|
- `default_locale`: 默认语言(可选)
|
||||||
- `locales_path`: 语言文件目录(可选)
|
- `locales_path`: 语言文件目录(可选)
|
||||||
@@ -185,24 +187,13 @@ python scripts/manifest_tool.py validate src/plugins/my_plugin
|
|||||||
2. **编码格式**:manifest文件必须使用UTF-8编码
|
2. **编码格式**:manifest文件必须使用UTF-8编码
|
||||||
3. **JSON格式**:文件必须是有效的JSON格式
|
3. **JSON格式**:文件必须是有效的JSON格式
|
||||||
4. **必需字段**:`manifest_version`、`name`、`version`、`description`、`author.name`是必需的
|
4. **必需字段**:`manifest_version`、`name`、`version`、`description`、`author.name`是必需的
|
||||||
5. **版本兼容**:当前只支持manifest_version = 3
|
5. **版本兼容**:当前只支持`manifest_version = 1`
|
||||||
|
|
||||||
## 🔍 常见问题
|
## 🔍 常见问题
|
||||||
|
|
||||||
### Q: 为什么要强制要求manifest文件?
|
|
||||||
A: Manifest文件提供了插件的标准化元数据,使得插件管理、依赖检查、版本兼容性验证等功能成为可能。
|
|
||||||
|
|
||||||
### Q: 可以不填写可选字段吗?
|
### Q: 可以不填写可选字段吗?
|
||||||
A: 可以。所有标记为"可选"的字段都可以不填写,但建议至少填写`license`和`keywords`。
|
A: 可以。所有标记为"可选"的字段都可以不填写,但建议至少填写`license`和`keywords`。
|
||||||
|
|
||||||
### Q: 如何快速为所有插件创建manifest?
|
|
||||||
A: 可以编写脚本批量处理:
|
|
||||||
```bash
|
|
||||||
# 扫描并为每个缺少manifest的插件创建最小化manifest
|
|
||||||
python scripts/manifest_tool.py scan src/plugins
|
|
||||||
# 然后手动为每个插件运行create-minimal命令
|
|
||||||
```
|
|
||||||
|
|
||||||
### Q: manifest验证失败怎么办?
|
### Q: manifest验证失败怎么办?
|
||||||
A: 根据验证器的错误提示修复相应问题。错误会导致插件加载失败,警告不会。
|
A: 根据验证器的错误提示修复相应问题。错误会导致插件加载失败,警告不会。
|
||||||
|
|
||||||
@@ -210,5 +201,5 @@ A: 根据验证器的错误提示修复相应问题。错误会导致插件加
|
|||||||
|
|
||||||
查看内置插件的manifest文件作为参考:
|
查看内置插件的manifest文件作为参考:
|
||||||
- `src/plugins/built_in/core_actions/_manifest.json`
|
- `src/plugins/built_in/core_actions/_manifest.json`
|
||||||
- `src/plugins/built_in/doubao_pic_plugin/_manifest.json`
|
|
||||||
- `src/plugins/built_in/tts_plugin/_manifest.json`
|
- `src/plugins/built_in/tts_plugin/_manifest.json`
|
||||||
|
- `src/plugins/hello_world_plugin/_manifest.json`
|
||||||
|
|||||||
@@ -163,12 +163,11 @@ class VersionComparator:
|
|||||||
version_normalized, max_normalized
|
version_normalized, max_normalized
|
||||||
)
|
)
|
||||||
|
|
||||||
if is_compatible:
|
if not is_compatible:
|
||||||
logger.info(f"版本兼容性检查:{compat_msg}")
|
|
||||||
return True, compat_msg
|
|
||||||
else:
|
|
||||||
return False, f"版本 {version_normalized} 高于最大支持版本 {max_normalized},且无兼容性映射"
|
return False, f"版本 {version_normalized} 高于最大支持版本 {max_normalized},且无兼容性映射"
|
||||||
|
|
||||||
|
logger.info(f"版本兼容性检查:{compat_msg}")
|
||||||
|
return True, compat_msg
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -358,14 +357,10 @@ class ManifestValidator:
|
|||||||
|
|
||||||
if self.validation_errors:
|
if self.validation_errors:
|
||||||
report.append("❌ 验证错误:")
|
report.append("❌ 验证错误:")
|
||||||
for error in self.validation_errors:
|
report.extend(f" - {error}" for error in self.validation_errors)
|
||||||
report.append(f" - {error}")
|
|
||||||
|
|
||||||
if self.validation_warnings:
|
if self.validation_warnings:
|
||||||
report.append("⚠️ 验证警告:")
|
report.append("⚠️ 验证警告:")
|
||||||
for warning in self.validation_warnings:
|
report.extend(f" - {warning}" for warning in self.validation_warnings)
|
||||||
report.append(f" - {warning}")
|
|
||||||
|
|
||||||
if not self.validation_errors and not self.validation_warnings:
|
if not self.validation_errors and not self.validation_warnings:
|
||||||
report.append("✅ Manifest文件验证通过")
|
report.append("✅ Manifest文件验证通过")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user