重构:文件系统模块化架构,增强 Markdown 渲染
- 拆分 FileSystem.vue 为模块化组件架构 - 新增 Markdown Mermaid 图表渲染支持 - 新增 180+ 编程语言代码高亮 - 修复编辑/预览模式切换渲染问题 - 优化亮色/暗色模式主题适配 - 新增 TypeScript 类型定义
This commit is contained in:
@@ -26,6 +26,7 @@ export const STORAGE_KEYS = {
|
||||
SIDEBAR_VISIBLE: 'app-filesystem-sidebar-visible',
|
||||
FAVORITE_FILES: 'app-filesystem-favorite-files',
|
||||
EDIT_MODE: 'app-filesystem-edit-mode', // HTML/Markdown 编辑模式状态
|
||||
FILE_DRAFT: 'app-filesystem-file-draft', // 文件草稿
|
||||
},
|
||||
|
||||
// 设备测试模块
|
||||
@@ -56,7 +57,8 @@ export const FILE_EXTENSIONS = {
|
||||
|
||||
// 视频文件
|
||||
VIDEO_BROWSER: ['mp4', 'webm', 'ogg', 'mov', 'm4v'], // 浏览器原生支持
|
||||
VIDEO_EXTERNAL: ['avi', 'mkv', 'wmv', 'flv', 'rmvb', '3gp', 'ts', 'mts'], // 需要外部播放器
|
||||
VIDEO_EXTERNAL: ['avi', 'mkv', 'wmv', 'flv', 'rmvb', '3gp', 'mts'], // 需要外部播放器(注意:不用 'ts' 避免 TypeScript 冲突)
|
||||
VIDEO: ['mp4', 'webm', 'ogg', 'mov', 'm4v', 'avi', 'mkv', 'wmv', 'flv', 'rmvb', '3gp', 'mts'], // 所有视频
|
||||
|
||||
// 音频文件
|
||||
AUDIO: ['mp3', 'wav', 'flac', 'aac', 'ogg', 'm4a', 'opus', 'webm'],
|
||||
@@ -69,10 +71,16 @@ export const FILE_EXTENSIONS = {
|
||||
|
||||
// 代码文件
|
||||
CODE: [
|
||||
'js', 'ts', 'jsx', 'tsx', 'vue', 'py', 'java', 'c', 'cpp', 'h', 'go', 'rs', 'php', 'rb', 'cs', 'swift', 'kt',
|
||||
'scala', 'css', 'scss', 'sass', 'less', 'json', 'xml', 'yaml', 'yml', 'sql', 'sh', 'bat', 'ps1'
|
||||
'js', 'ts', 'jsx', 'tsx', 'cts', 'mts', 'cjs', 'mjs',
|
||||
'vue', 'py', 'java', 'c', 'cpp', 'h', 'go', 'rs', 'php', 'rb', 'cs', 'swift', 'kt',
|
||||
'scala', 'css', 'scss', 'sass', 'less', 'json', 'xml', 'yaml', 'yml', 'sql', 'sh', 'bat', 'ps1',
|
||||
'flow', 'props', 'pch', 'cc', 'cxx', 'hpp', 'hxx', 'tcc', 'defs', 'makefile', 'mk', 'cmake',
|
||||
'tex', 'm', 'r', 'matlab', 'latex', 'rst', 'adoc'
|
||||
],
|
||||
|
||||
// 纯文本文件
|
||||
TEXT: ['txt', 'text', 'log', 'md', 'markdown', 'rst', 'adoc', 'tex', 'msg', 'csv', 'tsv'],
|
||||
|
||||
// 标记语言文件(用于特殊预览)
|
||||
MARKUP: ['html', 'htm', 'md', 'markdown'],
|
||||
|
||||
@@ -316,3 +324,45 @@ export const FILE_SIZE_THRESHOLDS = {
|
||||
LARGE_FILE: 100 * 1024, // 100KB - 大文件检测阈值
|
||||
MAX_TEXT_DISPLAY: 5 * 1024 * 1024, // 5MB - 文本文件最大显示大小
|
||||
}
|
||||
|
||||
/**
|
||||
* UI 文本常量
|
||||
* @description 界面上显示的固定文本
|
||||
*/
|
||||
export const UI_TEXT = {
|
||||
// 对话框标题
|
||||
CREATE_FILE: '📄 新建文件',
|
||||
CREATE_FOLDER: '📁 新建文件夹',
|
||||
RENAME_FILE: '重命名文件',
|
||||
DELETE_CONFIRM: '确认删除',
|
||||
|
||||
// 按钮文本
|
||||
CONFIRM: '确定',
|
||||
CANCEL: '取消',
|
||||
CREATE: '创建',
|
||||
SAVE: '保存',
|
||||
DELETE: '删除',
|
||||
|
||||
// 提示信息
|
||||
FILE_NAME_EMPTY: '请输入内容',
|
||||
FILE_NAME_INVALID: '文件名包含非法字符',
|
||||
FOLDER_NAME_INVALID: '文件夹名包含非法字符',
|
||||
FILE_EXISTS: '文件已存在',
|
||||
FOLDER_EXISTS: '文件夹已存在',
|
||||
SELECT_DIRECTORY: '请先选择一个目录',
|
||||
CREATE_SUCCESS: '创建成功',
|
||||
CREATE_FAILED: '创建失败',
|
||||
|
||||
// 输入提示
|
||||
ENTER_FILE_NAME: '请输入文件名(如: todo.md)',
|
||||
ENTER_FOLDER_NAME: '请输入文件夹名称',
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证规则
|
||||
* @description 数据验证的正则表达式规则
|
||||
*/
|
||||
export const VALIDATION_RULES = {
|
||||
// Windows 文件名非法字符
|
||||
ILLEGAL_FILE_NAME_CHARS: /[<>:"/\\|?*]/,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user