secubox-openwrt/DOCS-zh/HELP_INTEGRATION_PLAN.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

13 KiB
Raw Blame History

SecuBox 网站帮助/信息按钮集成计划

Languages: English | Francais | 中文

版本: 1.0 日期: 2025-12-28 状态: 规划阶段

概述

本文档概述了将 SecuBox 营销/文档网站与 OpenWrt LuCI 模块集成的策略,通过每个模块中的帮助/信息按钮提供对帮助文档的无缝访问。

当前架构

网站位置

  • 远程 URL https://secubox.cybermood.eu/
  • 路由器本地路径: /www/luci-static/secubox/
  • 访问 URL http://[路由器IP地址]/luci-static/secubox/

模块结构

所有 SecuBox 模块遵循一致的模式:

luci-app-{模块名称}/
├── htdocs/luci-static/resources/
│   ├── view/{模块名称}/
│   │   ├── overview.js (主仪表板)
│   │   └── *.js (其他视图)
│   └── {模块名称}/
│       ├── api.js
│       ├── theme.js (可选)
│       └── *.css

主要模块

  1. luci-app-secubox - 中央控制中心
  2. luci-app-system-hub - 系统监控
  3. luci-app-network-modes - 网络配置
  4. luci-app-client-guardian - 客户端管理
  5. luci-app-bandwidth-manager - 流量整形
  6. luci-app-cdn-cache - CDN 缓存
  7. luci-app-traffic-shaper - QoS 管理
  8. luci-app-wireguard-dashboard - VPN 管理
  9. luci-app-crowdsec-dashboard - 安全监控
  10. luci-app-netdata-dashboard - 性能指标

集成策略

第一阶段:共享帮助工具(推荐)

创建一个所有模块都可以使用的集中式帮助按钮库。

实施步骤

  1. 创建共享帮助模块

    // 位置luci-app-secubox/htdocs/luci-static/resources/secubox/help.js
    
    'use strict';
    'require baseclass';
    
    return baseclass.extend({
        /**
         * 创建帮助按钮元素
         * @param {string} moduleName - 模块标识符(例如:'network-modes'
         * @param {string} position - 按钮位置:'header'、'footer'、'floating'
         * @param {object} options - 自定义选项
         */
        createHelpButton: function(moduleName, position, options) {
            var opts = options || {};
            var helpUrl = this.getHelpUrl(moduleName);
            var buttonClass = 'sb-help-btn sb-help-' + position;
    
            return E('a', {
                'class': buttonClass,
                'href': helpUrl,
                'target': opts.target || '_blank',
                'title': opts.title || _('查看帮助和文档')
            }, [
                E('span', { 'class': 'sb-help-icon' }, opts.icon || '❓'),
                opts.showLabel !== false ? E('span', { 'class': 'sb-help-label' }, opts.label || _('帮助')) : null
            ]);
        },
    
        /**
         * 获取模块的帮助 URL
         * @param {string} moduleName - 模块标识符
         */
        getHelpUrl: function(moduleName) {
            var baseUrl = '/luci-static/secubox/';
            var moduleMap = {
                'secubox': 'index.html#modules',
                'system-hub': 'demo-secubox-hub.html',
                'network-modes': 'demo-network-modes.html',
                'client-guardian': 'demo-client-guardian.html',
                'bandwidth-manager': 'demo-bandwidth.html',
                'cdn-cache': 'demo-cdn-cache.html',
                'traffic-shaper': 'demo-traffic-shaper.html',
                'wireguard-dashboard': 'demo-wireguard.html',
                'crowdsec-dashboard': 'demo-crowdsec.html',
                'netdata-dashboard': 'demo-netdata.html',
                'netifyd-dashboard': 'demo-netifyd.html',
                'auth-guardian': 'demo-auth.html',
                'vhost-manager': 'demo-vhost.html',
                'ksm-manager': 'demo-ksm-manager.html',
                'media-flow': 'demo-media.html'
            };
    
            return baseUrl + (moduleMap[moduleName] || 'index.html');
        },
    
        /**
         * 在模态框中打开帮助(用于内联帮助)
         * @param {string} moduleName - 模块标识符
         */
        openHelpModal: function(moduleName) {
            var helpUrl = this.getHelpUrl(moduleName);
            var iframe = E('iframe', {
                'src': helpUrl,
                'style': 'width: 100%; height: 70vh; border: none; border-radius: 8px;'
            });
    
            ui.showModal(_('帮助和文档'), [
                E('div', { 'style': 'min-height: 70vh;' }, [iframe]),
                E('div', { 'class': 'right', 'style': 'margin-top: 1rem;' }, [
                    E('button', {
                        'class': 'btn',
                        'click': ui.hideModal
                    }, _('关闭'))
                ])
            ]);
        }
    });
    
  2. 创建通用 CSS 样式

    /* 位置luci-app-secubox/htdocs/luci-static/resources/secubox/help.css */
    
    /* 基础帮助按钮样式 */
    .sb-help-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem 1rem;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        color: white;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 500;
        transition: all 0.3s ease;
        border: 2px solid transparent;
        cursor: pointer;
    }
    
    .sb-help-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 12px rgba(102, 126, 234, 0.4);
        border-color: rgba(255, 255, 255, 0.3);
    }
    
    .sb-help-icon {
        font-size: 1.2em;
    }
    
    /* 头部位置 */
    .sb-help-header {
        margin-left: auto;
        padding: 0.4rem 0.8rem;
        font-size: 0.9em;
    }
    
    /* 页脚位置 */
    .sb-help-footer {
        margin-top: 2rem;
    }
    
    /* 悬浮按钮(右下角) */
    .sb-help-floating {
        position: fixed;
        bottom: 2rem;
        right: 2rem;
        z-index: 1000;
        border-radius: 50%;
        width: 60px;
        height: 60px;
        padding: 0;
        justify-content: center;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    }
    
    .sb-help-floating .sb-help-label {
        display: none;
    }
    
    .sb-help-floating .sb-help-icon {
        font-size: 1.8em;
    }
    
    /* 深色主题调整 */
    [data-theme="dark"] .sb-help-btn {
        background: linear-gradient(135deg, #4c51bf 0%, #553c9a 100%);
    }
    
  3. 更新每个模块

    示例luci-app-network-modes/htdocs/luci-static/resources/view/network-modes/overview.js

    'use strict';
    'require view';
    'require dom';
    'require ui';
    'require network-modes.api as api';
    'require secubox/help as Help';  // 添加此行
    
    return view.extend({
        title: _('网络模式'),
    
        load: function() {
            return api.getAllData();
        },
    
        render: function(data) {
            var self = this;
            // ... 现有代码 ...
    
            var view = E('div', { 'class': 'network-modes-dashboard' }, [
                // 加载帮助 CSS
                E('link', { 'rel': 'stylesheet', 'href': L.resource('secubox/help.css') }),
    
                // 带帮助按钮的头部
                E('div', { 'class': 'nm-header' }, [
                    E('div', { 'class': 'nm-logo' }, [
                        E('div', { 'class': 'nm-logo-icon' }, '🌐'),
                        E('div', { 'class': 'nm-logo-text' }, ['网络', E('span', {}, '配置')])
                    ]),
                    E('div', { 'class': 'nm-mode-badge ' + currentMode }, [
                        E('span', { 'class': 'nm-mode-dot' }),
                        currentModeInfo ? currentModeInfo.name : currentMode
                    ]),
                    // 添加帮助按钮
                    Help.createHelpButton('network-modes', 'header', {
                        icon: '📖',
                        label: _('帮助')
                    })
                ]),
    
                // ... 其余界面 ...
            ]);
    
            return view;
        }
    });
    

第二阶段:替代方案

方案 A悬浮帮助按钮

添加一个全局悬浮帮助按钮,显示在所有 SecuBox 模块页面上。

优点:

  • 非侵入式
  • 所有模块用户体验一致
  • 易于全局实施

缺点:

  • 可能与其他悬浮元素重叠
  • 可发现性较低

方案 B头部集成

在每个模块仪表板的头部添加帮助按钮。

优点:

  • 高度可见
  • 自然放置
  • 遵循常见的界面模式

缺点:

  • 需要修改每个模块
  • 在小屏幕上可能使头部杂乱

方案 C快捷操作集成

在具有操作面板的模块(如 SecuBox 仪表板)中将帮助添加为快捷操作。

优点:

  • 符合现有界面模式
  • 与其他工具分组
  • 与当前设计一致

缺点:

  • 仅适用于具有操作面板的模块
  • 不太显眼

推荐实施计划

步骤 1创建基础第 1 周)

  1. 创建 secubox/help.js 工具模块
  2. 创建 secubox/help.css 样式表
  3. 部署到测试路由器
  4. 验证可访问性

步骤 2集成核心模块第 2 周)

首先更新这些关键模块:

  1. luci-app-secubox(主仪表板)
  2. luci-app-system-hub
  3. luci-app-network-modes

在生产路由器上测试。

步骤 3推广到所有模块第 3 周)

更新其余模块:

  1. luci-app-client-guardian
  2. luci-app-bandwidth-manager
  3. luci-app-cdn-cache
  4. luci-app-traffic-shaper
  5. luci-app-wireguard-dashboard
  6. luci-app-crowdsec-dashboard
  7. luci-app-netdata-dashboard
  8. 其他模块

步骤 4用户测试和完善第 4 周)

  1. 收集用户反馈
  2. 调整定位/样式
  3. 根据需要添加本地化
  4. 为最终用户编写文档

模块到帮助页面映射

模块 帮助页面 状态
secubox index.html#modules 可用
system-hub demo-secubox-hub.html 可用
network-modes demo-network-modes.html 可用
client-guardian demo-client-guardian.html 可用
bandwidth-manager demo-bandwidth.html 可用
cdn-cache demo-cdn-cache.html 可用
traffic-shaper demo-traffic-shaper.html 可用
wireguard-dashboard demo-wireguard.html 可用
crowdsec-dashboard demo-crowdsec.html 可用
netdata-dashboard demo-netdata.html 可用
netifyd-dashboard demo-netifyd.html 可用
auth-guardian demo-auth.html 可用
vhost-manager demo-vhost.html 可用
ksm-manager demo-ksm-manager.html 可用
media-flow demo-media.html 可用

部署工作流程

网站更新

# 从 secubox-openwrt 目录
./secubox-tools/deploy-website.sh root@192.168.8.191 ../secubox-website

带帮助集成的模块更新

# 构建并部署单个模块
./secubox-tools/deploy-network-modes.sh root@192.168.8.191

# 或构建所有模块
./secubox-tools/local-build.sh build-all

测试检查清单

  • 帮助按钮显示在模块头部
  • 帮助按钮链接到正确的文档页面
  • 帮助页面在新标签页中打开(或配置为模态框)
  • 所有模块的样式一致
  • 按钮在移动设备上响应式
  • 深色/浅色主题支持
  • 本地化支持(如适用)
  • 控制台无 JavaScript 错误
  • 在本地路由器和远程部署上均可工作

未来增强功能

高级功能

  1. 上下文相关帮助

    • 根据当前页面/部分提供不同的帮助 URL
    • 深度链接到特定文档部分
  2. 内联帮助提示

    • 特定界面元素的悬停提示
    • 无需离开页面的快速提示
  3. 帮助搜索

    • 帮助模态框中的搜索框
    • 跨文档的全文搜索
  4. 交互式教程

    • 分步指南
    • 新用户引导游览
  5. 更新日志集成

    • 版本更新时显示"新功能"
    • 链接到发布说明

技术考虑

性能

  • 帮助资源是静态文件(无 API 调用)
  • JavaScript 开销最小(约 2KB
  • CSS 仅在需要时加载
  • 不影响模块核心功能

兼容性

  • 适用于 LuCI 18.06+
  • 兼容所有现代浏览器
  • 对旧浏览器优雅降级

安全性

  • 所有帮助内容从同源提供
  • 无外部依赖
  • 无 XSS 风险(静态 HTML/CSS/JS

维护

  • 集中式帮助工具(单一更新点)
  • 模块更改最小化(每个模块 1-3 行)
  • 网站更新独立于模块更新

参考资料

  • 部署脚本: secubox-tools/deploy-website.sh
  • 模块模板: secubox-tools/deploy-module-template.sh
  • 网站仓库: /home/reepost/CyberMindStudio/_files/secubox-website/
  • 当前部署: http://192.168.8.191/luci-static/secubox/

需要解答的问题和决策

  1. 按钮位置: 头部、悬浮还是两者兼有?
  2. 模态框 vs 新标签页: 帮助应该在模态框还是新标签页中打开?
  3. 移动端用户体验: 帮助按钮在小屏幕上应如何表现?
  4. 本地化: 是否支持多语言帮助内容?
  5. 分析: 跟踪帮助使用情况(尊重隐私)?

审批状态

  • 技术方案已批准
  • UI/UX 设计已批准
  • 实施时间表已批准
  • 测试计划已批准
  • 部署策略已批准