优化
This commit is contained in:
86
website/docs/plugins/start.mdx
Normal file
86
website/docs/plugins/start.mdx
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
title: Start developing plugins
|
||||
---
|
||||
|
||||
## Learn MiniStar
|
||||
|
||||
`MiniStar` is a complete microkernel architecture development toolchain, and the plugin architecture of `Tailchat` is developed based on `MiniStar`.
|
||||
|
||||
Learn more about `MiniStar`, you can check the official documentation of `MiniStar`: [https://ministar.moonrailgun.com/](https://ministar.moonrailgun.com/)
|
||||
|
||||
## Create a base project
|
||||
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
<Tabs groupId="start">
|
||||
<TabItem value="cli" label="Use the cli to quick start" default>
|
||||
|
||||
> First, make sure you have installed `tailchat-cli`, for command line tools, please refer to: [tailchat-cli](../cli/tailchat-cli)
|
||||
|
||||
Move to the project directory (can be a custom project):
|
||||
|
||||
```bash
|
||||
tailchat create
|
||||
```
|
||||
|
||||
Choose the template according to the actual situation
|
||||
|
||||

|
||||
|
||||
</TabItem>
|
||||
<TabItem value="ministar" label="Use the native ministar to create a plugin project" default>
|
||||
|
||||
|
||||
First, create a basic npm project and install `MiniStar` globally
|
||||
|
||||
```bash
|
||||
npm install --global mini-star
|
||||
```
|
||||
|
||||
Execute: `ministar createPlugin` in the project to create a basic plugin
|
||||
|
||||
Execute: `ministar buildPlugin` in the project to compile the plugin
|
||||
|
||||
> It is worth mentioning that although `Tailchat` does not enforce the naming convention of plugins, it is still recommended to use `anti-domain name` naming method (similar to package naming in java), and then use `/` for the components in the plugin to split
|
||||
>
|
||||
> such as:
|
||||
>
|
||||
> Plugin name: `com.msgbyte.webview`
|
||||
>
|
||||
> Registration content: `com.msgbyte.webview/grouppanel`
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## Install Plugin
|
||||
|
||||
### Manually install plugin
|
||||
|
||||
Without any presets, a general method is to construct a `manifest` configuration by yourself, and then paste the configuration file into the tab of `tailchat` to provide manual installation plug-ins for installation.
|
||||
|
||||
The url path of the plugin can be proxied through methods such as `oss object storage service` / `static-server`
|
||||
|
||||
An example `manifest.json` configuration is as follows:
|
||||
|
||||
```json
|
||||
{
|
||||
"label": "Web Panel Plugin",
|
||||
"name": "com.msgbyte.webview",
|
||||
"url": "/plugins/com.msgbyte.webview/index.js",
|
||||
"version": "0.0.0",
|
||||
"author": "msgbyte",
|
||||
"description": "Provides groups with the ability to create web panels",
|
||||
"requireRestart": false
|
||||
}
|
||||
```
|
||||
|
||||
## other helpful resources
|
||||
|
||||
- Plugin architecture kernel dependency library [MiniStar](https://ministar.moonrailgun.com/)
|
||||
- From the API provided by the base project: [API Documentation](./api/common)
|
||||
- Export interface source code
|
||||
- [@capital/common](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/common/index.ts)
|
||||
- [@capital/component](https://github.com/msgbyte/tailchat/blob/master/client/web/src/plugin/component/index.tsx)
|
||||
Reference in New Issue
Block a user