mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-06-29 01:37:22 +08:00
docs: 重写 README.md 为开源项目风格
- 添加 badges(版本/Tauri/React/Rust/测试数) - 按功能模块分组(路径管理/验证/撤销/导入导出/安全/界面) - 补充安装章节(Releases + 源码构建) - 补充贡献指南(开发环境、代码规范) - 完整项目结构和快捷键表 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1,88 +1,94 @@
|
|||||||
# PathEditor v4.0
|
<p align="center">
|
||||||
|
<h1>PathEditor</h1>
|
||||||
|
<p>Windows 系统环境变量 (PATH) 编辑器</p>
|
||||||
|
</p>
|
||||||
|
|
||||||
Windows 系统环境变量 (PATH) 编辑器,基于 Tauri 2.x + React 19 + TypeScript + Rust 构建。
|
<p align="center">
|
||||||
|
<img src="https://img.shields.io/badge/version-4.0.0-blue" alt="version">
|
||||||
|
<img src="https://img.shields.io/badge/tauri-2.x-ffa03a" alt="tauri">
|
||||||
|
<img src="https://img.shields.io/badge/react-19-61dafb" alt="react">
|
||||||
|
<img src="https://img.shields.io/badge/rust-1.95-000000" alt="rust">
|
||||||
|
<img src="https://img.shields.io/badge/typescript-strict-blue" alt="typescript">
|
||||||
|
<img src="https://img.shields.io/badge/license-MIT-green" alt="license">
|
||||||
|
<img src="https://img.shields.io/badge/tests-55%20passed-brightgreen" alt="tests">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 简介
|
||||||
|
|
||||||
|
PathEditor 是 Windows PATH 环境变量的可视化管理工具。支持系统变量和用户变量的增删改查、拖拽排序、一键清理无效路径、导入导出以及完整的撤销/重做。
|
||||||
|
|
||||||
|
v4.0 使用 **Tauri 2.x + React 19 + TypeScript + Rust** 完全重写,替代了原有的 C + IUP GUI。
|
||||||
|
|
||||||
|
## 截图
|
||||||
|
|
||||||
|
_[待补充]_
|
||||||
|
|
||||||
## 功能
|
## 功能
|
||||||
|
|
||||||
- 查看和编辑系统/用户 PATH 环境变量
|
### 路径管理
|
||||||
|
- 查看和编辑 **系统 PATH**(HKLM)和 **用户 PATH**(HKCU)
|
||||||
- 新建、编辑、删除、上移、下移路径条目
|
- 新建、编辑、删除、上移、下移路径条目
|
||||||
- 一键清理无效和重复路径
|
- 多选批量删除
|
||||||
- 完整撤销/重做支持(最多 50 步)
|
- 实时搜索过滤
|
||||||
- 导入/导出 JSON、CSV、TXT 三种格式
|
- 合并预览(系统 + 用户路径并列显示)
|
||||||
- 深色模式 / 浅色模式切换
|
|
||||||
- 中英文界面切换
|
|
||||||
- 合并预览(同时查看系统 + 用户路径)
|
|
||||||
- 搜索过滤
|
|
||||||
- 文件夹拖拽添加
|
- 文件夹拖拽添加
|
||||||
- 注册表备份
|
|
||||||
|
|
||||||
## 运行
|
### 路径验证
|
||||||
|
- **红色**标记:路径在文件系统中不存在
|
||||||
|
- **橙色**标记:路径在列表中重复出现
|
||||||
|
- 环境变量路径(含 `%VAR%`)悬浮展开预览
|
||||||
|
|
||||||
需要管理员权限才能编辑系统 PATH(非管理员自动进入只读模式)。
|
### 撤销/重做
|
||||||
|
- 支持 8 种操作类型,最多 50 步历史
|
||||||
|
- 新增、删除、编辑、移动、清理、清空、导入均可撤销
|
||||||
|
|
||||||
|
### 导入/导出
|
||||||
|
- **JSON**:结构化导出,含版本和时间戳
|
||||||
|
- **CSV**:UTF-8 BOM 编码,兼容 Excel
|
||||||
|
- **TXT**:纯文本,每行一个路径
|
||||||
|
|
||||||
|
### 安全
|
||||||
|
- 保存前自动备份注册表到 `%APPDATA%/PathEditor/backups/`
|
||||||
|
- PATH 长度检查(Windows 单变量上限 32767 字符)
|
||||||
|
- 非管理员自动进入**只读模式**
|
||||||
|
- 保存中途失败精确提示哪个注册表 hive 出错
|
||||||
|
|
||||||
|
### 界面
|
||||||
|
- 深色模式 / 浅色模式
|
||||||
|
- 中文 / English 界面切换
|
||||||
|
- 全局键盘快捷键
|
||||||
|
- 修改状态指示(黄点)+ 未保存退出确认
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
从 [Releases](https://github.com/LHY0125/PathEditor/releases) 下载最新版 `PathEditor_4.0.0_x64-setup.exe` 安装。
|
||||||
|
|
||||||
|
或从源码构建:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 安装依赖
|
# 安装依赖
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
# 开发模式(热更新)
|
|
||||||
npx tauri dev
|
|
||||||
|
|
||||||
# 构建安装包
|
# 构建安装包
|
||||||
npx tauri build
|
npx tauri build
|
||||||
```
|
```
|
||||||
|
|
||||||
## 技术栈
|
> **要求**:Windows 10+(自带 WebView2),管理员权限才能编辑系统 PATH。
|
||||||
|
|
||||||
| 层 | 技术 |
|
|
||||||
|---|---|
|
|
||||||
| 前端框架 | React 19 + TypeScript |
|
|
||||||
| UI 样式 | Tailwind CSS 4 |
|
|
||||||
| 状态管理 | Zustand |
|
|
||||||
| 国际化 | i18next |
|
|
||||||
| 桌面框架 | Tauri 2.x |
|
|
||||||
| 后端语言 | Rust |
|
|
||||||
| 测试 | Vitest (前端) |
|
|
||||||
| 构建 | Vite |
|
|
||||||
|
|
||||||
## 架构
|
|
||||||
|
|
||||||
```
|
|
||||||
src/ # React 前端
|
|
||||||
├── core/ # 纯逻辑(StringList、撤销/重做、路径管理、导入导出)
|
|
||||||
├── store/ # Zustand 状态管理
|
|
||||||
├── components/ # UI 组件(列表、工具栏、对话框)
|
|
||||||
├── hooks/ # 自定义 Hooks(键盘快捷键、路径验证)
|
|
||||||
├── i18n/ # 中英文翻译
|
|
||||||
└── config/ # UI 参数配置
|
|
||||||
|
|
||||||
src-tauri/ # Rust 后端
|
|
||||||
└── src/commands/
|
|
||||||
├── registry.rs # 注册表读写
|
|
||||||
├── system.rs # 权限检测、路径验证、环境变量展开、系统广播
|
|
||||||
└── backup.rs # 注册表备份
|
|
||||||
```
|
|
||||||
|
|
||||||
## 快捷键
|
|
||||||
|
|
||||||
| 快捷键 | 功能 |
|
|
||||||
|--------|------|
|
|
||||||
| Ctrl+N | 新建路径 |
|
|
||||||
| Ctrl+S | 保存 |
|
|
||||||
| Ctrl+Z | 撤销 |
|
|
||||||
| Ctrl+Y | 重做 |
|
|
||||||
| Ctrl+F | 搜索 |
|
|
||||||
| Delete | 删除选中 |
|
|
||||||
| F1 | 帮助 |
|
|
||||||
|
|
||||||
## 开发
|
## 开发
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# 开发模式(热更新)
|
||||||
|
npx tauri dev
|
||||||
|
|
||||||
|
# 仅前端
|
||||||
|
npm run dev
|
||||||
|
|
||||||
# 前端测试
|
# 前端测试
|
||||||
npm test
|
npm test
|
||||||
|
|
||||||
# 前端测试(监听模式)
|
|
||||||
npm run test:watch
|
|
||||||
|
|
||||||
# Rust 后端检查
|
# Rust 后端检查
|
||||||
cd src-tauri && cargo check
|
cd src-tauri && cargo check
|
||||||
|
|
||||||
@@ -90,10 +96,78 @@ cd src-tauri && cargo check
|
|||||||
cd src-tauri && cargo test
|
cd src-tauri && cargo test
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 技术栈
|
||||||
|
|
||||||
|
| 层 | 技术 |
|
||||||
|
|---|---|
|
||||||
|
| 前端框架 | React 19 + TypeScript (strict) |
|
||||||
|
| UI 样式 | Tailwind CSS 4 |
|
||||||
|
| 状态管理 | Zustand |
|
||||||
|
| 国际化 | i18next |
|
||||||
|
| 桌面框架 | Tauri 2.x |
|
||||||
|
| 后端 | Rust (winreg + windows-rs FFI) |
|
||||||
|
| 前端测试 | Vitest (45 个测试) |
|
||||||
|
| Rust 测试 | cargo test (10 个测试) |
|
||||||
|
| 构建 | Vite |
|
||||||
|
| 打包 | NSIS |
|
||||||
|
|
||||||
|
### 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
src/ # React 前端
|
||||||
|
├── core/ # 纯逻辑 — 零框架依赖、零平台依赖
|
||||||
|
├── store/ # Zustand 状态管理
|
||||||
|
├── components/
|
||||||
|
│ ├── layout/ # AppShell、TitleBar、StatusBar、ErrorBoundary
|
||||||
|
│ ├── path-list/ # PathTable、MergePreview
|
||||||
|
│ ├── toolbar/ # ToolBar、ActionButtons、UndoRedoButtons、SearchInput
|
||||||
|
│ ├── dialogs/ # PathEditDialog、HelpDialog、ImportDialog
|
||||||
|
│ └── ui/ # Modal、buttons(共享组件)
|
||||||
|
├── hooks/ # useAppActions、useKeyboard
|
||||||
|
├── i18n/ # zh-CN / en
|
||||||
|
└── config/ # default.json
|
||||||
|
|
||||||
|
src-tauri/ # Rust 后端
|
||||||
|
└── src/commands/
|
||||||
|
├── registry.rs # 注册表读写
|
||||||
|
├── system.rs # 权限检测、路径验证、环境变量展开
|
||||||
|
└── backup.rs # 注册表备份
|
||||||
|
|
||||||
|
tests/unit/ # 前端单元测试
|
||||||
|
```
|
||||||
|
|
||||||
|
## 快捷键
|
||||||
|
|
||||||
|
| 快捷键 | 功能 |
|
||||||
|
|--------|------|
|
||||||
|
| `Ctrl+N` | 新建路径 |
|
||||||
|
| `Ctrl+S` | 保存 |
|
||||||
|
| `Ctrl+Z` | 撤销 |
|
||||||
|
| `Ctrl+Y` | 重做 |
|
||||||
|
| `Ctrl+F` | 搜索 |
|
||||||
|
| `Delete` | 删除选中 |
|
||||||
|
| `F1` | 帮助 |
|
||||||
|
|
||||||
|
## 贡献
|
||||||
|
|
||||||
|
欢迎提交 Issue 和 Pull Request。在开始大改动前,建议先开 Issue 讨论。
|
||||||
|
|
||||||
|
### 本地开发环境
|
||||||
|
|
||||||
|
- Node.js 22+
|
||||||
|
- Rust 1.95+ (stable-x86_64-pc-windows-gnu)
|
||||||
|
- MinGW-w64 (GCC 15.x 需配置 `-lmcfgthread` 链接标志)
|
||||||
|
|
||||||
|
### 代码规范
|
||||||
|
|
||||||
|
- TypeScript `strict: true`,零编译错误
|
||||||
|
- 所有 Rust `unsafe` 块必须有 `// SAFETY:` 注释
|
||||||
|
- 前端核心逻辑在 `src/core/`,纯函数,零依赖,可独立测试
|
||||||
|
|
||||||
## 许可证
|
## 许可证
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
## 作者
|
## 作者
|
||||||
|
|
||||||
刘航宇 — [GitHub](https://github.com/LHY0125/PathEditor)
|
[刘航宇](https://github.com/LHY0125) — 河南理工大学人工智能协会
|
||||||
|
|||||||
Reference in New Issue
Block a user