Files
Plugin-Example/README.md

89 lines
1.9 KiB
Markdown

# Example Plugin
A demonstration plugin showing how to build plugins for the Plugin Host system.
## Features
This example demonstrates:
- ✅ Plugin activation/deactivation lifecycle
- ✅ Hook registration and execution
- ✅ Event listening and emission
- ✅ Configuration access
- ✅ Logging utilities
- ✅ Periodic tasks
- ✅ Exported functions
## Structure
```
Plugin-Example/
├── plugin.json # Plugin manifest
├── index.js # Main plugin code
├── package.json # NPM metadata
└── README.md # This file
```
## Plugin Manifest (`plugin.json`)
The manifest defines your plugin's metadata:
```json
{
"id": "example-plugin",
"name": "Example Plugin",
"version": "1.0.0",
"description": "An example plugin",
"author": "Your Name",
"main": "index.js",
"repository": "http://your-git-repo",
"config": {
"greeting": "Hello from Example Plugin!"
},
"permissions": ["hooks", "events"]
}
```
## Plugin API
### Lifecycle Methods
```javascript
export async function activate(context) {
// Called when plugin loads
}
export async function deactivate(context) {
// Called when plugin unloads
}
```
### Context API
```javascript
context.registerHook(hookName, callback) // Register a hook
context.runHook(hookName, ...args) // Execute hooks
context.getConfig(key) // Get config value
context.log(...args) // Log with plugin prefix
context.on(event, listener) // Listen to events
context.emit(event, ...args) // Emit events
```
## Creating Your Own Plugin
1. Copy this example
2. Edit `plugin.json` with your plugin details
3. Implement `activate()` and `deactivate()` in `index.js`
4. Add any additional functions/features
5. Submit to the Plugin Directory
## Hooks
This example registers:
- `on-startup` - Called when the system starts
- `transform-data` - Transform data objects
## License
MIT