SuperAPI AI 工具集

halo-plugin-dev

编程与开发

查看项目

更新于 10-15 22:12

技能介绍

用途:创建或修改 Halo CMS 插件,涉及 Java 后端代码、plugin.yaml 与扩展资源、Gradle 和 DevTools 配置、插件 API 等。

主要能力与用法:先检查目标插件现有 Gradle 文件、src/main/resources/plugin.yaml、UI 包清单与构建配置及邻近实现,再确定 Halo 平台依赖与 plugin.yaml 的 spec.requires,不擅自提高版本要求或切换 UI 构建格式。保留既有插件结构与工具链;新插件优先使用官方 pnpm create halo-plugin 脚手架,除非用户另选起点。涉及插件 API、配置、生命周期、UI、DevTools、安全或集成契约时,按需抓取相关 Markdown 文档,不默认加载 llms-full.txt;版本敏感时读插件 API 变更日志,并以目标依赖、源码或现有调用方核对签名与行为,目标版本优先于当前站点文档。在线文档不可用时,尽量基于目标检出与依赖源码继续,并说明无法核实之处。

边界与限制:阻塞工作不得放在响应式 WebFlux 路径上;优先复用 Halo 提供的 UI 组件、FormKit 输入、共享工具与项目已装构建工具。普通插件设置用 Setting YAML,页面与弹窗表单用 FormKit,优先复用 Halo 列表、搜索、弹窗、反馈与权限组件。用项目的 generateApiClient 任务从自定义模型和 SpringdocRouteBuilder 端点生成 TypeScript 模型与 API 方法,复用 Halo 的 axiosInstance,不手写生成类型或另建 Axios 客户端。生成文件应改输入并用生成器或构建任务,不直接编辑输出。密码、令牌、API 密钥与私钥存入 Halo Secret,不放入 ConfigMap 或自定义模型 spec;对外请求需校验 SSRF 与重定向风险,配置加载失败时保持公开 API 或安全开关关闭。仅在需要非超级管理员或匿名访问时添加 RoleTemplate,并授予最小权限。验证时使用项目现有 Gradle 与 UI 脚本,运行最相关的测试与检查,并在清单、UI 输出或生成资源影响插件 JAR 时验证打包;有可运行 Halo 实例时,对改动的 Console、用户中心、API、生命周期或主题集成路径做冒烟测试。