Skip to content
目录

基本配置

AnyText 通过动态引用 ESM 模块 的方式来加载扩展,简单来说一个模块就是一个扩展。

一般情况下,只需要一个 js 文件就可以完成一个扩展的开发,也可以使用构建工具来打包多个文件,你可以在 进阶开发:环境搭建 中了解更多。

不管哪种方式,扩展本身需要暴露一个 配置对象 以及 生命周期钩子 函数,这些函数会在 AnyText 的生命周期中被调用。

理解配置对象

配置对象是一个包含了扩展的所有配置信息的对象,它的结构如下:

js
export const config = {
  // 扩展名称
  name: "example",
  // 扩展描述
  description: "This will be the intro. The detail descriptions...",
  // 扩展 ID
  id: "example",
  // 扩展图标
  icon: "https://example.com/icon.png",
  // 扩展版本
  version: "1.0.0",
  // 扩展作者
  author: {
    name: "Your Name",
    url: "https://example.com"
  },
  // 目标版本
  engine: "v0.0.1"
}

以下是配置对象的类型定义:

ts
interface Config {
  name: string
  description?: string
  id: string
  icon?: string
  version: string
  author?: {
    name?: string
    url?: string
  }
  engine: string
}

警告

不要使用动态的值来填充配置对象,因为这些值会在扩展加载时被解析,而不是在运行时。

具体而言

扩展名称

name 字段是扩展的名称,它会在扩展列表中显示

扩展描述

description 字段是扩展的描述,它会在扩展信息中显示

扩展 ID

id 字段是扩展的唯一标识

扩展图标

icon 字段是扩展的图标,它支持:

  • base64 编码的图片:pnggifsvg
  • http 或 https 协议的图片链接:pngjpggifsvgjpegwebpjfifbmpdpg
  • Anytext 字体图标:anytext
  • Material Design Icons 字体图标:mdi
  • Font Awesome Pro 字体图标:fasfarfalfadfab

扩展版本

version 字段是扩展的版本号

扩展作者

author 字段是扩展的作者信息,它支持:

  • name:作者名称
  • url:作者链接

目标版本

engine 字段是扩展的目标 AnyText 版本,它用来限制扩展的兼容性,它支持:

  • 指定版本:v0.0.1
  • 大于某个版本:>v0.0.1
  • 小于某个版本:<v0.0.1
  • 大于等于某个版本:>=v0.0.1
  • 小于等于某个版本:<=v0.0.1
  • 不等于某个版本:!=v0.0.1
  • 匹配所有版本:*

Released under the MIT License.