NPP 插件系统介绍
Npplication 插件系统,允许用户安装、管理和使用各种插件来增强 nitaiPage 功能。
插件系统架构
Npplication 利用 IndexedDB 存储插件文件的内容和元数据。 每个插件都是一个独立的 JavaScript 文件,包含特定格式的元数据。 元数据通过 localStorage 存储。
核心功能
插件管理
- 安装、卸载和更新插件
- 管理插件加载顺序
数据存储
- 使用 IndexedDB 存储插件文件内容
- 使用 localStorage 存储元数据
- 为每个插件提供独立的数据存储空间 (API 使用指南)
商店系统
- 按分类加载插件
- 支持从多个商店源加载插件
- 可以查看插件详情和依赖关系
实现
1. 元数据提取
每个 Npplication 插件都包含特定格式的元数据,用于描述插件的基本信息:
javascript
// ==Npplication==
// @name 名称
// @id 唯一标识符 (时间戳_UUIDv4)
// @version 版本信息
// @description 描述
// @author 作者
// @updateUrl 更新地址
// @forceUpdate 强制更新 (true/normal)
// @time 加载时机 (head/body)
// @icon 图标
// @dependencies 依赖项
// @type 类型 (core/normal)
// @screen 截图 (用于在商店中展示,优先级比商店 JSON 配置高)
// ==/Npplication==
元数据详解
NitaiPage 通过 extractMetadata
解析这些元数据,用于插件的展示和管理。
2. 插件安装流程
- 文件验证:确保是有效的 JS 文件
- 提取元数据:从插件文件中读取元数据信息
- 检查依赖项:验证插件的所有依赖
- 存储元数据:保存到 localStorage
- 下载插件文件:将文件内容保存到 IndexedDB
- 刷新提示:提示刷新页面加载新安装的 NPP
3. 插件加载
- 插件根据元数据中指定的
@time
时机加载(head
或body
) - 核心插件在页面初始化时加载
- 普通插件按安装顺序加载 (用户可手动配置加载顺序)