Skip to content

开始

安装

为了保持风格统一,如快提供了一套与软件 UI 风格一致的组件库,推荐开发者优先使用官方的组件库,以提供风格统一的使用体验。

可以用你喜欢的方式安装如快官方的组件库:

bash
npm i sofast-extensions@latest

同时,插件 api 也集成在 sofast-extensions 库中。

自定义扩展

如快的一个扩展可以包含多条指令,如模板项目中就包含了 greetsayHello 两条指令。

每条指令有自己的页面,用户通过选中这条指令并回车即可进入对应的指令。

后续会增加不同指令类型,比如后台运行而没有页面的指令。

开发

  1. 新增一个Vue组件,作为插件的主页即 Greet.vue

    html
    <template>
    	<div class="w-full h-full grid place-items-center">
    	  <span class="text-stone-800">
    	    <span class="text-3xl font-bold">你好</span>,我是一个如快的插件!
    	  </span>
    	</div>
    </template>
  2. 在 Sofast 的插件系统中,一个 Vue 组件被视为一个 Command,它的入口文件的固定写法为导出一个 () => App 格式的函数

    typescript
    import Greet from "./components/Greet.vue";
    import './assets/index.css' // 这里导入一下 TailwindCSS 的 base.css 文件,不使用 TailwindCSS 请忽略,当然,这里建议使用 TailwindCSS 或者 Unocss 来提高开发效率
    import {createApp} from "vue";
    
    export default () => createApp(Greet)
  3. 配置 package.json 文件,Sofast 需要用到的字段有:

    json
    {
      "title": "Sofast Extension Template",
      "author": "Blushyes",
      "commands": [
        {
          "name": "greet",
          "title": "打个招呼"
        },
        {
          "name": "sayHello",
          "title": "Say Hello"
        }
      ],
      "description": "A template for creating a Sofast extension",
      "categroies": [
        "template"
      ]
    }

    其中,command 是最终要的字段,声明了你这个插件需要注册的所有指令,name 字段为这个指令在 src 目录下对应的文件名,比如 name 为 sayHello 时,指令对应的文件为 src/sayHello.ts

    其他字段说明待完善

  4. 接下来运行 npm run build 构建项目

  5. 得到的 dist 文件夹即为我们的插件文件夹(现在还不支持导入压缩包插件)

  6. 接下来,进入 Sofast 中导入插件(注意,导入插件是开发者模式,正式加载插件是添加插件)即可

模板可参考 https://github.com/Blushyes/sofast-extension-template