菜单

Plugson Web 界面

相关源文件

Plugson Web Interface 是一个基于浏览器的管理系统,用于配置 Ventoy 插件。它为用户提供了一个图形界面,可以自定义 Ventoy 的行为,而无需直接编辑配置文件。本文档描述了 Plugson Web Interface 的架构、组件和功能,它是 Ventoy 项目的关键子系统。

架构概述

Plugson 实现了客户端-服务器架构,其中一个轻量级 Web 服务器嵌入在 VentoyPlugson 可执行文件中。该服务器同时托管 Web UI 文件和管理插件配置的后端 API。

来源

Web服务器实现

Web服务器基于 CivetWeb 库构建,这是一个嵌入式 C/C++ Web 服务器。这个轻量级服务器同时处理静态内容分发和 API 端点。

HTTP服务器初始化

服务器使用定义端口、文档根目录和请求处理程序的设置进行初始化。主要的 API 端点是 /vtoy/json,它处理所有插件配置请求。

API请求处理

API请求遵循标准模式

  1. 客户端将 JSON 请求发送到 /vtoy/json 端点
  2. 服务器解析请求并识别相应的处理函数
  3. 处理程序处理请求,与插件数据结构交互
  4. 服务器格式化并返回 JSON 响应

来源

插件系统设计

Plugson Web Interface 管理多种插件类型,这些插件用于自定义 Ventoy 的行为。每种插件类型都可以为不同的 BIOS 模式单独配置。

插件类型和数据结构

每种插件类型都有一个相应的数据结构来存储其配置。例如,data_control 存储全局控制插件设置,而 data_theme 存储主题插件设置。

该系统支持多种 BIOS 模式的配置:通用(所有 BIOS)、Legacy BIOS、UEFI、IA32、AA64 和 MIPS。g_json_exist 数组跟踪每种 BIOS 模式存在的插件类型。

来源

Web用户界面

Plugson Web UI 是一个单页应用程序,提供了一个管理 Ventoy 插件的界面。UI 使用 Bootstrap 进行样式设计和响应式设计。

UI结构和导航

  • 主标题,包含标题和语言选择
  • 侧边栏菜单,包含指向不同插件配置页面的链接
  • 内容区域,显示选定的插件配置
  • 用于文件选择和其他操作的模态对话框

导航由 JavaScript 处理,它根据选定的菜单项动态加载内容。

来源

插件配置工作流程

配置插件的典型工作流程包括

  1. 用户导航到插件配置页面
  2. 系统通过 API 加载当前插件配置
  3. 用户通过 UI 编辑配置
  4. 系统验证输入(文件路径、设置)
  5. 用户保存配置
  6. 系统将配置写入 ventoy.json

文件和路径验证

Plugson 提供多种方法来验证文件路径

  1. 基本存在性检查:验证文件或目录是否存在
  2. 模糊路径匹配:处理通配符路径(例如,*.iso
  3. 路径大小写敏感性:处理不同操作系统上的大小写敏感路径比较
API 功能目的
ventoy_api_check_exist检查单个文件或目录是否存在
ventoy_api_check_exist2检查两个文件或目录是否存在
ventoy_api_check_fuzzy使用通配符验证路径

来源

JSON 配置格式

插件配置存储在 ventoy.json 文件中,格式为 JSON。Plugson 后端负责解析、修改和写入这些文件。

每个插件类型在 JSON 文件中都有特定的结构。例如,Control 插件可能看起来像

后端提供了在这些 JSON 结构和应用程序内部使用的数据结构之间进行转换的函数。

来源

本地化支持

Plugson 通过本地化系统支持多种语言。语言文件包含 UI 元素的翻译字符串。

该系统支持包括英语、中文、德语、法语、西班牙语以及许多其他语言。可用的语言由 grub/menu/ 目录中的文件决定。

来源

安全考量

Plugson Web界面包含多项安全功能

  1. 路径验证:确保文件路径有效且在适当的目录结构内
  2. 密码保护:允许为访问特定菜单项设置密码
  3. 输入过滤:验证用户输入以防止注入攻击

来源

结论

Plugson Web界面提供了一种用户友好的方式来配置Ventoy的各种插件。其基于Web的UI的客户端-服务器架构使其易于访问和使用,同时提供强大的配置能力。插件系统对不同BIOS模式的支持允许对Ventoy启动体验进行灵活和有针对性的定制。