内容
# 简历生成器与AI助手
一款用于管理、排版和编译专业LaTeX简历的生产就绪型桌面应用程序和AI助手后端。
该项目基于**干净架构**模型,具备**Electron + React**桌面应用程序和内置的**模型上下文协议(MCP)服务器**,允许AI代理(如Gemini、Claude或Cursor)直接在本地系统上验证、编辑和编译简历。
> [!NOTE]
> 该项目的旧版Python/PySide6版本已被归档,可以在 [legacy-pyside](https://github.com/vicky-dx/resume-generator/tree/legacy-pyside) 分支中找到。
---
## 🚀 主要功能
* **React UI编排**:具有专用表单编辑器(Zod内联验证)、语法高亮原始JSON编辑器、实时PDF预览面板和依赖设置向导的单一责任模块化面板界面。
* **共享`compileResume`管道**:一个统一的高级编译器管道(`normalize` $\rightarrow$ `validate` $\rightarrow$ `build` $\rightarrow$ `compile` $\rightarrow$ `error-parse` $\rightarrow$ `cleanup`),由Electron桌面外壳和MCP服务器原生共享。
* **内置MCP服务器**:为LLM提供简历生成器工具(`list_templates`、`validate_resume`、`generate_resume_pdf`),用于自动定制简历。
* **后台自动更新器**:使用`electron-updater`和GitHub Releases的静默后台更新器,启动时带有VS Code风格的“What's New”发布说明模态窗口。
* **高级LaTeX日志解析**:精确的编译警告过滤器和错误解析器,提取确切的行号和LaTeX错误详细信息,以辅助调试。
---
## 🛠️ 技术栈
* **外壳**:Electron,Vite,Context-Bridge预加载脚本。
* **前端**:React 18,TypeScript,Tailwind CSS,Lucide图标。
* **编译器引擎**:Nunjucks模板,Zod验证模式,`latexmk`/`xelatex`命令生成。
* **AI桥接**:模型上下文协议(MCP)SDK。
---
## 📦 需求
* **Node.js**:v18+
* **LaTeX发行版**:具有`xelatex`和`latexmk`的LaTeX安装:
* **Windows**:[MiKTeX](https://miktex.org/) 或 [TeX Live](https://www.tug.org/texlive/)
* **macOS**:[MacTeX](https://www.tug.org/mactex/)
* **Linux**:`sudo apt install texlive-xetex latexmk`
---
## 🚀 快速入门
### 1. 安装
克隆仓库并安装npm包:
```bash
git clone https://github.com/vicky-dx/resume-generator.git
cd resume-generator/electron-app
npm install
```
### 2. 以开发模式运行
启动Vite开发服务器并启动Electron外壳,并预加载模拟更新提供程序:
```bash
npm run dev
```
### 3. 构建生产包
编译TypeScript代码并打包生产资产:
```bash
npm run build
```
---
## 🤖 使用MCP服务器
该项目在`electron-app/src/mcp-server.ts`中包含一个MCP服务器,允许AI代理直接在您的机器上检查模板、验证简历和编译PDF。
### 集成配置
将以下内容添加到您的AI IDE配置中(例如Cursor、Claude Desktop或Gemini配置):
```json
{
"mcpServers": {
"resume-generator": {
"command": "npx",
"args": ["tsx", "src/mcp-server.ts"],
"cwd": "C:/Users/vicky/Desktop/PROJECTS/resume/resume-generator/electron-app"
}
}
}
```
### 公开的工具:
1. `list_templates`:扫描`./templates/`并返回可用的布局。
2. `validate_resume`:规范化输入JSON并检查Zod模式规则(例如有效的电子邮件,社交链接域名)。
3. `generate_resume_pdf`:规范化、验证、编译LaTeX,使用共享引擎,并将最终PDF复制到`outputPath`。
---
## 📂 项目目录结构
```text
resume-generator/
├── .agents/ # 项目范围的AI配置(MCP配置)
├── templates/ # XeLaTeX简历模板(.tex布局网格)
│ └── classic.tex # 默认单列模板
│
└── electron-app/ # Electron桌面和React核心应用程序
├── electron/ # 主进程文件
│ ├── main.ts # Electron主循环和IPC路由器
│ ├── preload.ts # contextBridge预加载脚本
│ └── UpdateManager.ts # 自动更新器单例管理器(electron-updater)
│
├── src/ # 渲染进程(React应用程序)
│ ├── components/ # 模块化布局小部件(UpdateBanner,SetupWizard,编辑器)
│ ├── hooks/ # 自定义钩子(useStyle,useCompiler,useUpdater)
│ ├── layout/ # Flex/Grid面板(AppLayout,EditorPane,PreviewPane)
│ ├── lib/ # 共享实用程序(builder.ts,latexRunner.ts,错误解析器)
│ ├── models/ # 简历模式(Zod数据验证)
│ ├── providers/ # 更新服务(MockUpdateProvider和ElectronUpdateProvider)
│ ├── services/ # 共享核心服务(compileResume,normalizer)
│ ├── types/ # TS类型声明(compiler.ts,update.ts)
│ │
│ ├── App.tsx # 根编排器布局组件
│ ├── main.tsx # React启动入口点
│ └── mcp-server.ts # 模型上下文协议stdio服务器
│
├── vite.config.ts # Vite构建配置(Rollup外部规则)
├── package.json # Node项目配置
└── tsconfig.json # TypeScript配置
```