Plugson Web Interface 是一个基于浏览器的管理系统,用于配置 Ventoy 插件。它为用户提供了一个图形界面,可以自定义 Ventoy 的行为,而无需直接编辑配置文件。本文档描述了 Plugson Web Interface 的架构、组件和功能,它是 Ventoy 项目的关键子系统。
Plugson 实现了客户端-服务器架构,其中一个轻量级 Web 服务器嵌入在 VentoyPlugson 可执行文件中。该服务器同时托管 Web UI 文件和管理插件配置的后端 API。
来源
Web服务器基于 CivetWeb 库构建,这是一个嵌入式 C/C++ Web 服务器。这个轻量级服务器同时处理静态内容分发和 API 端点。
服务器使用定义端口、文档根目录和请求处理程序的设置进行初始化。主要的 API 端点是 /vtoy/json,它处理所有插件配置请求。
API请求遵循标准模式
/vtoy/json 端点来源
ventoy_json_result 用于返回 JSON 响应ventoy_json_buffer 用于返回 JSON 缓冲区Plugson Web Interface 管理多种插件类型,这些插件用于自定义 Ventoy 的行为。每种插件类型都可以为不同的 BIOS 模式单独配置。
每种插件类型都有一个相应的数据结构来存储其配置。例如,data_control 存储全局控制插件设置,而 data_theme 存储主题插件设置。
该系统支持多种 BIOS 模式的配置:通用(所有 BIOS)、Legacy BIOS、UEFI、IA32、AA64 和 MIPS。g_json_exist 数组跟踪每种 BIOS 模式存在的插件类型。
来源
Plugson Web UI 是一个单页应用程序,提供了一个管理 Ventoy 插件的界面。UI 使用 Bootstrap 进行样式设计和响应式设计。
导航由 JavaScript 处理,它根据选定的菜单项动态加载内容。
来源
配置插件的典型工作流程包括
Plugson 提供多种方法来验证文件路径
*.iso)| API 功能 | 目的 |
|---|---|
ventoy_api_check_exist | 检查单个文件或目录是否存在 |
ventoy_api_check_exist2 | 检查两个文件或目录是否存在 |
ventoy_api_check_fuzzy | 使用通配符验证路径 |
来源
插件配置存储在 ventoy.json 文件中,格式为 JSON。Plugson 后端负责解析、修改和写入这些文件。
每个插件类型在 JSON 文件中都有特定的结构。例如,Control 插件可能看起来像
后端提供了在这些 JSON 结构和应用程序内部使用的数据结构之间进行转换的函数。
来源
Plugson 通过本地化系统支持多种语言。语言文件包含 UI 元素的翻译字符串。
该系统支持包括英语、中文、德语、法语、西班牙语以及许多其他语言。可用的语言由 grub/menu/ 目录中的文件决定。
来源
Plugson Web界面包含多项安全功能
来源
Plugson Web界面提供了一种用户友好的方式来配置Ventoy的各种插件。其基于Web的UI的客户端-服务器架构使其易于访问和使用,同时提供强大的配置能力。插件系统对不同BIOS模式的支持允许对Ventoy启动体验进行灵活和有针对性的定制。