其他
贡献指南
欢迎参与 karin-plugin-kkk 的开发与贡献
贡献指南
感谢你对 karin-plugin-kkk 感兴趣!我们需要你的帮助来让这个项目变得更好。
无论是修复 Bug、添加新功能,还是改进文档,我们都非常欢迎。
准备工作
在开始之前,请确保你的开发环境满足以下要求:
项目结构
本项目采用 Monorepo 结构,主要包含以下部分:
packages/core: 核心插件代码 (karin-plugin-kkk),包含主要业务逻辑。packages/template: React SSR 渲染器,生成 HTML 文件。packages/amagi: 接口库 (Git Submodule),处理各平台的 API 请求与签名。packages/docs: 文档站点,基于 Next.js 和 Fumadocs。
packages/amagi 是一个 Git 子模块。如果你需要修改 API 相关的逻辑(如签名算法),请不要直接修改该目录。你需要前往 amagi 仓库 提交 Pull Request。
架构说明
插件在 Karin 中的位置
karin-plugin-kkk 是 Karin 框架的一个功能插件,遵循 Karin 的插件规范开发。
消息处理流程
当用户在群聊中发送包含平台链接的消息时,插件的处理流程如下:
核心模块说明
Apps 命令层 - 负责注册 Karin 命令,监听消息并分发到对应的平台处理器。
src/apps/
├── tools.ts # 视频解析命令(抖音/B站/快手/小红书)
├── push.ts # 动态推送任务
├── qrlogin.ts # 扫码登录功能
├── admin.ts # 管理员命令
├── help.ts # 帮助信息
└── update.ts # 插件更新Platform 平台层 - 每个平台独立封装,包含链接解析、数据获取、评论处理等。
src/platform/
├── douyin/ # 抖音
├── bilibili/ # B站
├── kuaishou/ # 快手
└── xiaohongshu/ # 小红书Module 工具层 - 提供配置管理、数据库操作、API 服务、网络请求等通用功能。
src/module/
├── config/ # 配置管理
├── db/ # 数据库操作
├── server/ # API 服务
└── utils/ # 工具函数数据流向
开发流程
克隆仓库
将你 Fork 后的仓库克隆到本地。由于项目包含子模块,克隆时需要初始化子模块:
# 替换为你的 GitHub 用户名
git clone --recursive https://github.com/你的用户名/karin-plugin-kkk.git
# 或者如果你已经克隆了仓库但没有子模块
git submodule update --init --recursive启动开发环境
根据你要修改的内容,启动相应的开发环境:
-
开发插件核心 (
packages/core):pnpm watch -
开发模板 (
packages/template):pnpm template -
预览文档 (
packages/docs):pnpm docs
提交代码
我们遵循 Conventional Commits 规范。
提交信息的格式如下:
<type>(<scope>): <subject>例如:
feat(core): 支持解析新的分享链接fix(template): 修复动态卡片样式错乱docs: 更新贡献指南
提交 Pull Request
- 推送到你的 Fork 仓库:
git push origin feature/amazing-feature - 在 GitHub 上向原仓库提交 Pull Request。
常见问题
如何更新子模块?
如果你发现 packages/amagi 落后于上游,可以使用以下命令更新:
git submodule update --remote遇到 TypeScript 类型错误?
尝试重新构建整个项目或重新安装依赖:
pnpm install
pnpm buildLast updated on