Todo List
本示例用于展示如何从插件模板创建一个插件并写一个 Todo List:
首先通过模板仓库创建一个插件,例如叫 halo-plugin-todolist
配置你的插件
-
修改
build.gradle
中的group
为你自己的,如:group = 'run.halo.tutorial'
-
修改
settings.gradle
中的rootProject.name
rootProject.name = 'halo-plugin-todolist'
-
修改插件的描述文件
plugin.yaml
,它位于src/main/resources/plugin.yaml
。示例:apiVersion: plugin.halo.run/v1alpha1
kind: Plugin
metadata:
name: todolist
spec:
enabled: true
requires: ">=2.0.0"
author:
name: halo-dev
website: https://halo.run
logo: https://halo.run/logo
homepage: https://github.com/halo-dev/plugin-starter#readme
repo: https://github.com/halo-dev/plugin-starter
issues: https://github.com/halo-dev/plugin-starter/issues
displayName: "插件 Todo List"
description: "插件开发的 hello world,用于学习如何开发一个简单的 Halo 插件"
license:
- name: "GPL-3.0"
url: "https://github.com/halo-dev/plugin-starter/blob/main/LICENSE"
参考链接:
此时我们已经准备好了可以开发一个 TodoList 插件的一切,下面让我们正式进入 TodoList 插件开发教程。
运行插件
为了看到效果,首先我们需要让插件能最简单的运行起来。
-
在
src/main/java
下创建包,如run.halo.tutorial
,在创建一个类TodoListPlugin
,它继承自BasePlugin
类内容如下:package run.halo.tutorial;
import run.halo.app.plugin.PluginContext;
import org.springframework.stereotype.Component;
import run.halo.app.plugin.BasePlugin;
@Component
public class TodoListPlugin extends BasePlugin {
public TodoListPlugin(PluginContext pluginContext) {
super(pluginContext);
}
}src/main/java
下的文件结构如下:.
└── run
└── halo
└── tutorial
└── TodoListPlugin.java -
然后在项目目录执行命令
./gradlew build
-
使用
IntelliJ IDEA
打开 Halo,参考 Halo 开发环境运行 及 插件入门 配置插件的运行模式和路径:halo:
plugin:
runtime-mode: development
fixed-plugin-path:
# 配置为插件绝对路径
- /Users/guqing/halo-plugin-todolist -
启动 Halo,然后访问
http://localhost:8090/console
在插件列表将能看到插件已经被正确启用: