提交扩展
如果您想将扩展提交到 extensions.bilup.org,您需要遵循以下规则:
信息
除非它是一个高质量的扩展,否则我们不会为您修改文件。
扩展封面图
每个扩展都需要一张封面图,存储在 images/ 目录中。
此外,封面图名称必须与扩展文件名相同,尺寸为 600x300,格式为 .svg。
扩展文件
头部
扩展的头部部分必须包含以下内容:
// Name: ExtensionName
// ID: extensionid
// Description: ExtensionDescription
// By: Name <your url>
// Original: TheOriginalAuthor <original url>
// License: MPL-2.0
您必须使用行注释;块注释 /* */ 不会生效。这些字段是必需的:
Name出现在网站和画廊中。它应该与 getInfo() 返回的name相似。ID必须与 getInfo() 返回的id完全相同,并且必须是小写。Description出现在网站和画廊中。License描述扩展代码使用的许可证。它必须是有效的 SPDX 许可证 表达式。对于我们推荐的 Mozilla Public License 2.0,标识符是MPL-2.0。By用于署名作者。Original用于基于他人作品的扩展。它们都使用相同的格式:Name或Name <Url>(URL 必须是有效的)。如果您想署名多个作者,只需再添加一条// By: ...或// Original: ...注释。
代码
提交前,请确保您的扩展代码没有错误。
我们建议检查以下内容:
- 检查您的扩展是否存在 于
extensions\extensions.json中 - 检查您的封面图是否存在于
images/目录中 - 运行
npm start或npm run build检查构建错误
国际化翻译
我们要求您的扩展包含国际化翻译(zh-CN 和 en;未来可能添加更多语言)。
国际化翻译文件存储在 translations/ 目录中,其中 translations\extension-metadata.json 存储名称和描述的翻译,translations\extension-runtime.json 存储扩展代码的翻译。
每个翻译必须遵循此格式:
"zh-CN": {
"extensionID@translationsID": "value"
}
其中 extensionID 是您 扩展的 ID,translationsID 是翻译键,value 是翻译后的文本。
在代码中使用国际化翻译时,您需要使用 Scratch.translate() 方法。
Scratch.translate({ default: 'defaultValue', id: 'translationsID' });
通常,defaultValue 应包含英文翻译。
注意:translationsID 是您之前在 translations\extension-runtime.json 中定义的键。调用时不要使用 extensionID@translationsID。
我们建议以标准化的方式定义 translationsID,例如 group.tools、block.settings 等。
关于 AI 的声明
- 我们允许您使用 AI 编写代码,但我们建议您不要过度依赖 AI。 如果您使用 AI 编写代码,请确保您能理解 AI 生成的代码,并且能在没有 AI 的情况下修复问题。
- 我们不建议使用 AI 生成封面图。
提交您的扩展
我们建议以下提交方法:
- 直接将您的扩展提交到
extensions仓库(这可能要求您拥有提交到extensions仓库的权限;我们不推荐此方法) - 创建分支并提交到该分支(不推荐)
- 准备您的扩展并将其发送给我们的维护者(推荐)
有关提交扩展的更多详情,请联系我们([email protected])。