Agent Skills
返回列表
Halo 插件开发

Halo 插件开发

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_005ed4ba/halo-plugin-dev。

技能介绍

解决什么问题

Halo 的插件体系横跨三个层面:运行在 Halo JVM 内的 Java 后端(Spring DI、WebFlux、CRD 风格的扩展与自定义 API)、注入 Console 与 UC 的 Vue/TypeScript 前端,以及描述元数据与依赖的 plugin.yaml。这三部分的约定分散在不同文档里,且插件 API、VO 字段名、扩展注解和 UI API 会随 Halo 版本持续演进——凭记忆写字段名很容易写出在当前版本已失效的代码。

技能如何工作

该技能围绕一条完整的开发链路组织:

  • 脚手架:pnpm create halo-plugin 生成新项目,按提示选择插件名、领域与 UI 构建工具(Rsbuild 或 Vite)
  • 后端:在 src/main/java/ 下编写 Java 代码,覆盖扩展定义、自定义端点、生命周期与共享 Bean
  • 前端:在 ui/src/(或 console/src/)编写 Vue/TS 代码
  • 清单:配置 src/main/resources/plugin.yaml,声明 extensions/ 下的 YAML 资源
  • 运行调试:通过 DevTools 启动(需要 Docker),访问 http://localhost:8090/console,或用 watch 热重载
  • 构建:./gradlew build 产出可分发的 JAR

同时提供一份覆盖前后端的参考资料索引,涵盖插件结构、清单字段、DevTools 任务、服务端扩展/API/生命周期/共享 Bean/安全/协调器/搜索、主题集成,以及 UI 入口、构建、共享工具、扩展点、组件、表单与 API 请求等。

适用边界与注意点

  • 本地运行与热重载依赖 Docker 环境
  • 插件 API 跨版本不保证兼容,访问扩展字段或调用共享 Bean 前必须先查阅对应版本的在线文档,不要依赖训练数据中的字段名与签名

使用场景

  • 从零新建插件,需先搭好后端目录、UI 构建和 manifest,再跑起来看 Console。
  • 需要给 Halo 定义自己的数据模型与存储索引,让插件读写扩展资源。
  • 改了 Java 或 Vue 代码想立刻在浏览器里验证,借助 DevTools 热重载调试。
  • 要在主题里注入脚本或改文章渲染后的 HTML,用 TemplateHeadProcessor 和 ContentHandler 扩展。

适合人员

  • 后端工程师,熟悉 Spring Boot,想给 Halo 写扩展与自定义 API。
  • 前端工程师,熟悉 Vue/TS,要在 Console 或 UC 里加页面和组件。
  • 独立开发者,负责一个 Halo 站点的插件,需要端到端跑通开发与打包流程。
  • 主题开发者,需要在页面头部注入资源或修改渲染后的 HTML 结构。