Files
Nexus/docs/changelog/2026-05-30-monaco-ide-editor.md
2026-07-08 22:31:31 +08:00

62 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog — Monaco 编辑器 + IDE 重构 + 文件管理增强
**日期**: 2026-05-30
**Commit**: e8c1acb (含 15+ commits)
**类型**: 功能增强 + 安全修复
**涉及文件**:
- `web/app/files.html` — IDE 编辑器全面重构
- `web/app/api.js` — Monaco 预加载(后移入 files.html
- `web/app/terminal.html` — path 参数自动 cd
- `web/app/servers.html` — 「文件」按钮
- `server/api/sync_v2.py` — chmod/compress/decompress 端点
- `server/api/schemas.py` — FileChmod/FileCompress/FileDecompress schema
## Monaco 编辑器
- 全局预加载:页面加载后 CDN 后台下载 Monaco (~2MB)
- IDE 面板:全屏替代模态框,支持多文件标签页
- 每个标签独立 Monaco 实例,切换保持状态
- 语法高亮:30+ 语言自动检测(conf→ini, sh→shell, py→python 等)
- Ctrl+S 保存 + 未保存指示器
- 状态栏:光标位置 + 语言 + 文件路径
## 文件管理增强
- 右键菜单:预览/下载/重命名/权限/复制路径/终端/压缩/解压/删除
- 文件树:IDE 左侧面板,点击文件打开/目录导航
- 最小化/恢复:底部标签栏
- 新建文件按钮(📄+
- chmod 权限修改
- 压缩 tar.gz / 解压 tar.gz+zip
- 排序切换(名称/大小/时间)
- 文件类型筛选(.conf/.log/.sh/.py/.json/.yml/.txt
- 文件预加载 + 缓存(≤1MB 文本文件,双击秒开)
## SSH 终端集成
- 工具栏「🖥 终端」按钮
- 新标签页打开 SSH + 自动 cd 到当前目录
- terminal.html 支持 path URL 参数
## 服务器列表
- 每行操作栏新增「文件」按钮(琥珀色)
- 点击直达文件管理,自动选中服务器
## 安全修复(审计 FINDING
- H-01: esc() 加引号转义防 onclick XSS
- H-02: initialPath 路径白名单防命令注入
- H-03: 新建文件文件名白名单
- H-13: 移除 showModal 中已删除的 textarea 引用
- H-20: initialPath 仅首次连接 cd
- H-26: esc() 跨文件一致性
## 已知限制
- Monaco CDN 无 SRI(版本锁定 @0.45.0 降低风险)
- Nginx 静态文件缓存可能导致更新延迟(需 nginx -s reload
## 是否需迁移/重启
- 需要重启后端服务(新增 chmod/compress/decompress 端点)