You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docs/versioned_docs/version-2.17/developer-guide/plugin/hello-world.md

4.1 KiB

title description
入门 了解如何构建你的第一个插件并在 Halo 中使用它。

此文档将帮助你了解如何构建你的第一个插件并在 Halo 中安装和启用。

创建插件项目

  1. 打开 halo-dev/plugin-starter

这是一个插件的初始模板,你可以基于它来开发自己的插件。

  1. 点击 Use this template -> Create a new repository
  2. 如图所示填写仓库名后点击 Create repository from template

create-repository-for-hello-world-plugin

你现在已经基于 Halo 插件模板创建了自己的存储库。接下来,你需要将它克隆到你的计算机上。

# clone your repository
git clone https://github.com/<your-username>/halo-plugin-hello-world.git

# enter the directory
cd halo-plugin-hello-world

运行插件

现在有了一个空项目,我们需要让插件能最最小化的运行起来,这里提供两种运行方式。

使用 DevTools 运行(推荐)

Halo 提供了一个用于插件开发的 DevTools它可以帮助你快速的运行和调试插件在模板插件项目中已经集成了 DevTools可查阅 DevTools 使用说明

使用 DevTools 运行插件的前提是需要你的电脑上已经安装了 Docker 环境,这是我们推荐的用户开发时运行插件的方式,只需要执行以下命令即可。

  1. 执行前端部分的依赖安装命令:

    # macOS / Linux
    ./gradlew pnpmInstall
    
    # Windows
    ./gradlew.bat pnpmInstall
    
  2. 运行插件:

    # macOS / Linux
    ./gradlew haloServer
    
    # Windows
    ./gradlew.bat haloServer
    

    执行此命令后,会自动创建一个 Halo 的 Docker 容器并加载当前的插件。

  3. 启动成功后,可以看到如下日志输出:

    Halo 初始化成功,访问: http://localhost:8090/console
    用户名admin
    密码admin
    

    然后访问 http://localhost:8090/console

    在插件列表将能看到插件已经被正确启动,并且在左侧菜单添加了一个 示例分组,其下有一个名 示例页面 的菜单。

    hello-world-in-plugin-list

传统方式运行

如果你的设备上无法安装 Docker 或你对 Docker 不熟悉,可以使用传统方式运行并开发插件。

但由于此方式需要先使用源码运行 Halo 才能启动插件,请确保已经在开发环境运行了 Halo可以参考 Halo 开发环境运行

  1. 安装前端部分的依赖

    # macOS / Linux
    ./gradlew pnpmInstall
    
    # Windows
    ./gradlew.bat pnpmInstall
    
  2. 编译插件

    # macOS / Linux
    ./gradlew build
    
    # Windows
    ./gradlew.bat build
    
  3. 修改 Halo 配置文件:

    # 进入 Halo 项目根目录后,使用 cd 命令进入配置文件目录
    cd application/src/main/resources
    
    # 创建 application-local.yaml 文件
    touch application-local.yaml
    

    根据你的操作系统,将以下内容添加到 application-local.yaml 文件中。

    # macOS / Linux
    halo:
      plugin:
        runtime-mode: development
        fixed-plugin-path:
          # 配置为插件项目目录绝对路径
          - /path/to/halo-plugin-hello-world
    
    # Windows
    halo:
      plugin:
        runtime-mode: development
        fixed-plugin-path:
          # 配置为插件项目目录绝对路径
          - C:\path\to\halo-plugin-hello-world
    
  4. 启动 Halo

    # macOS / Linux
    ./gradlew bootRun --args="--spring.profiles.active=dev,local"
    
    # Windows
    gradlew.bat bootRun --args="--spring.profiles.active=dev,win,local"
    

    然后访问 http://localhost:8090/console

    在插件列表将能看到插件已经被正确启动,并且在左侧菜单添加了一个 示例分组,其下有一个名 示例页面 的菜单。

    hello-world-in-plugin-list