Skip to content
大纲

NPP 插件系统介绍

Npplication 插件系统,允许用户安装、管理和使用各种插件来增强 nitaiPage 功能。

插件系统架构

Npplication 利用 IndexedDB 存储插件文件的内容和元数据。 每个插件都是一个独立的 JavaScript 文件,包含特定格式的元数据。 元数据通过 localStorage 存储。

核心功能

  1. 插件管理

    • 安装、卸载和更新插件
    • 管理插件加载顺序
  2. 数据存储

    • 使用 IndexedDB 存储插件文件内容
    • 使用 localStorage 存储元数据
    • 为每个插件提供独立的数据存储空间 (API 使用指南)
  3. 商店系统

    • 按分类加载插件
    • 支持从多个商店源加载插件
    • 可以查看插件详情和依赖关系

实现

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. 插件安装流程

  1. 文件验证:确保是有效的 JS 文件
  2. 提取元数据:从插件文件中读取元数据信息
  3. 检查依赖项:验证插件的所有依赖
  4. 存储元数据:保存到 localStorage
  5. 下载插件文件:将文件内容保存到 IndexedDB
  6. 刷新提示:提示刷新页面加载新安装的 NPP

3. 插件加载

  • 插件根据元数据中指定的 @time 时机加载(headbody
  • 核心插件在页面初始化时加载
  • 普通插件按安装顺序加载 (用户可手动配置加载顺序)

Released under the Apache-2.0 License.