Skip to content

开发规范

字数
1834 字
阅读时间
8 分钟

命名规范

Git插件包

这里必须遵守,否则将无法被karin识别启用

  • 插件包名称必须以 karin-plugin- 开头,后面跟插件名称
  • 必须使用英文命名,尽量简短,避免使用特殊符号
  • 统一为小写,使用 - 连接单词

例如:kritor-plugin-hellokarin-plugin-my-pluginkarin-plugin-my-awesome-plugin

单个js

这里是推荐规范,不强制要求
一般情况下 不建议另外再创建一个同样功能的 karin-plugin-example 文件夹。

  • 统一存放在 karin 提供的 karin-plugin-example
  • 使用英文进行命名,无固定前缀要求
  • 名称尽量简短,避免过长
  • 名称避免使用特殊符号,使用 - 连接单词

例如:hello-world.jsmy-plugin.jsmy-awesome-plugin.js

结构规范

TIP

建议直接使用 模板仓库 进行开发

插件包的目录结构,请参照以下规范进行组织,开发者可自行在基础结构上进行调整

文件结构

TIP

以下是一个基础的结构规范,具体项目可根据实际情况进行调整

md
kritor-plugin-hello
├── apps
│ ├── app1.js
│ └── app2.js
├── config
│ ├── config
│ │ ├── config.yaml
│ │ └── user.yaml
│ └── defSet
│ ├── config.yaml
│ └── user.yaml
├── resources
│ ├── template
│ ├── font
│ ├── icon
│ ├── image
│ └── css
├── lib
├── model
├── index.js
├── .gitignore
├── README.md
├── CHANGELOG.md
├── LICENSE
└──package.json

数据文件

警告

这里请必须遵守

  • 对于 数据文件 ,karin要求开发者将数据文件 统一 存放到 data/
  • karin 会在启动的时候,为每一个插件包在 data/ 下创建 对应名称 的文件夹
  • 如无特殊需求,请不要在 data 文件夹下创建其他文件夹

问:为什么要求统一存放数据文件?
答:方便 karin 统一管理,方便用户 查找迁移 、快速 备份

问:什么样的算数据文件?
答:如 CookieTokensqlitemysql 等数据文件,不包含 配置文件资源文件

配置文件

无需一定遵守,但是推荐遵守

  • 对于配置文件,由于使用 git 进行管理升级,所以一般会有两种配置文件:默认配置用户配置
  • Git默认配置 :要求统一存放在插件自身的 karin/plugin/<plugin_name>config/ 下,由开发者进行维护修改,此处禁止用户编辑修改。
  • Npm默认配置 :要求统一存放在插件自身的 karin/node_modules/<plugin_name>config/ 下,由开发者进行维护修改,此处禁止用户编辑修改。
  • 用户配置 :要求统一存放在 karin/config/plugin/<plugin_name> 下,由用户进行编辑修改。
  • 如无特殊需求,请不要在 config 文件夹下创建其他文件夹

对于这里,建议使用 karin-plugin-template 作为模板,进行开发

资源文件

任选其一即可,以下是两种常见的规范,无需一定遵守

规范1:

  • 插件包的资源文件
  • 字体文件存放在 resources/font/
  • 图片文件存放在 resources/image/
  • 图标文件存放在 resources/icon/
  • 通用样式文件存放在 resources/css/
  • 渲染模板存放在 resources/template/ 下,每一种模板新建一个文件夹

规范2:

  • 每一种渲染模板都在 resources 下新建一个文件夹,文件夹名称为模板名称,将模板的资源文件存放在该文件夹下

临时文件

  • karin会在启动的时候,在 karin/temp 下为每一个插件包创建对应名称的文件夹
  • 开发者可在该文件夹下存放临时文件,如缓存文件、日志文件等
  • 请勿对他人的文件夹进行删除、修改
  • 如无特殊需求,请不要在该文件夹下创建其他文件夹。

html渲染模板

  • karin会在启动的时候,在 karin/temp/html 下为每一个插件包创建对应名称的文件夹
  • 请开发者在使用渲染的时候,将 name 设置为 插件包名称

仓库规范

  • 要求插件仓库名称必须以 karin-plugin- 开头,必须与插件包名称一致
  • 插件仓库必须提供开源协议
  • 在仓库标签页,添加 karinkarin-plugin
  • 对于二改的 karin 仓库,必须进行开源,并使用 GPLv3+ 协议,并使用 karin 标签进行标记

多媒体资源规范

  • 网络资源:
    • 必须携带 httphttps 协议
    • 如:https://www.example.com/image.png
  • 本地资源:
    • 必须携带 file 协议
    • 必须使用 file:// 开头,禁止使用 file:/// 开头
    • 同一服务器环境跨应用传输,比如使用 绝对路径
    • 如:file://D:/example/image.pngfile:///root/image.png
  • base64 :
    • 必须使用 base64:// 开头
    • 不要携带 data:image/png;base64,等前缀
    • 如:base64://iVBORw0KGAYAAR42mL8//8/AyUYw ...

基本规范

  • 建议开发者在仓库主页添加 免责声明

  • 对于 开源 插件,必须提供 开源协议

  • 对于 闭源 插件,请遵守下方规则即可。

  • 禁止存在触犯法律法规的行为

  • 禁止存在侵犯第三方知识产权的行为

  • 禁止存在恶意推广、恶意宣传等恶意行为

  • 禁止存在恶意利用插件进行违法犯罪活动等恶意行为

  • 禁止存在恶意破坏、恶意修改、恶意删除、恶意添加等恶意行为

  • 禁止存在恶意破坏用户隐私、恶意收集用户信息等恶意行为

  • 禁止存在恶意收集、泄露用户数据、恶意泄露用户隐私等恶意行为

  • 禁止存在恶意修改插件的源代码、恶意删除插件的源代码等恶意行为

  • 禁止在插件中包含任何形式的 后门木马病毒 等恶意代码或程序

  • 对于加密、混淆的插件,必须在仓库主页声明哪些文件是加密、混淆的,并注明代码混淆的目的

问:为什么要求遵守这些规范?
答:君子协议。我们希望开发者能够遵守这些规范,让 karin 生态更加健康,让开发者和用户更加放心。

问:为什么必须提供开源协议?
答:

  1. 在很多人的印象中,开源就是免费的,但是开源并不代表免费,开源是一种精神,是一种对社区的贡献,是一种对开发者的尊重。
  2. 开源协议可以保护开发者的权益,让开发者的劳动成果不被滥用。
  3. 大多数情况下,没有开源协议的插件,在产生纠纷的时候,往往双方都无法得到一个好的处理结果。
  4. 并且部分开源协议支持商业使用,开发者可实现商业化,从中获取一定的收益。
解决方案
适配器
其他
2024 KarinJS. All Rights Reserved.