Resume Builder 是一个面向求职、保研和学术申请场景的在线简历编辑器。它不要求注册账号,也不把填写过程拆成层层跳转的表单,而是让内容编辑与最终版式始终出现在同一个工作区中:修改字段、调整模块或切换主题后,可以立即看到简历的实际效果。
在线体验:resume.dodolalorc.cn
项目源码:github.com/dodolalorc/resume.dodolalorc.cn
为什么做这个项目
制作简历时,内容和排版往往会互相牵制。使用文档工具,需要反复处理对齐、间距和分页;使用模板网站,又常常受限于固定字段、付费导出或平台账号。
这个项目尝试把两件事分开处理:
- 使用者专注于经历、项目和成果的表达。
- 编辑器负责模块结构、视觉层级和打印版式。
它不是一个复杂的求职平台,而是一件边界清晰的本地化工具:从结构化内容开始,经过实时预览和主题调整,最终得到一份适合打印、投递或继续保存的简历。
核心体验
所见即所得的编辑方式
个人信息、教育经历、工作或校园经历、项目经历与奖项都可以在编辑抽屉中维护。页面会实时呈现修改结果,不需要在“填写”和“预览”之间来回切换。
除个人信息固定置顶外,其余模块可以拖拽排序。面对不同申请方向时,同一份内容可以重新组织叙事顺序:求职简历优先展示项目与工作经历,学术申请则可以把教育背景和科研项目放在更靠前的位置。
两套面向真实场景的主题
项目没有追求大量相似模板,而是保留两套用途明确的主题:
| 主题 | 适用场景 | 版式重点 |
|---|---|---|
| 简约纸张 | 校招、应届生求职、研究型岗位 | 单栏结构与均衡的信息密度,强调清晰、耐读 |
| 科研保研 | 保研、夏令营、科研助理、学术申请 | 突出 GPA、排名、课程、语言证书与科研项目 |
主题之外,还可以调整主题色、简历背景色和标题背景样式。标题背景采用直角梯形标签,并与分割线衔接,用来强化信息层级;不需要这类视觉强调时,也可以保持纯粹的纸张式排版。
为不同经历准备的数据结构
编辑器不仅覆盖常见的学校、公司、职位和项目描述,也为学术申请补充了更细的字段:
- 学校与专业标签,例如
985、211、双一流、QS Top 100。 - GPA、专业排名、语言证书和主修课程。
- 项目作者顺序、会议或期刊、投稿状态与项目来源。
- 科研方向、技能和自定义申请信息。
这些内容仍然使用同一套模块化数据结构,不需要为了求职版和学术版分别维护两份简历。
导出与数据管理
Resume Builder 提供三种互补的导出方式:
| 格式 | 用途 |
|---|---|
| 通过浏览器原生打印生成,可自定义文件名;多页简历支持背景补齐与页码 | |
| HTML | 导出内联样式的独立文件,适合离线查看和直接分享 |
| JSON | 备份当前简历数据,用于恢复、迁移或继续编辑 |
PDF 导出基于 @page 和 window.print(),不依赖 canvas 截图。这样可以保留可选择文本,也更接近浏览器原生的打印与分页能力。跨设备使用时,则可以通过 JSON 完成数据迁移,不必依赖平台账号。
技术实现
项目使用 Vue 3.5、Composition API 和 TypeScript 构建,Vite 负责开发与生产构建,样式由 Tailwind CSS 和组件内 CSS 共同完成,依赖管理与脚本运行使用 Bun。
代码按照数据、编辑器、展示和主题拆分:
src/ components/ 通用组件 data/cv.json 默认简历数据 i18n/ 界面文案 themes/ index.ts 主题注册与样式变量 types.ts 主题类型 presets/ 主题预设 types/resume.ts 简历数据类型 utils/resume-export.ts PDF、HTML 等导出逻辑 views/ resume-view.vue 简历主视图 components/ 简历展示组件 modules/resume-editor/ 编辑抽屉其中,主题系统被设计为可扩展的预设层。src/themes/index.ts 会自动注册主题,新增主题时可以通过脚本生成基础结构:
bun run theme:new -- MyTheme主题因此不只是几组散落在组件中的颜色值,而是一套具有明确类型和注册入口的配置。
产品取舍
当前版本有意保持较小的功能边界:
- 页面只提供简体中文界面;历史数据中的
{ zh, en }字段仍可兼容读取。 - 不提供账号与云同步,数据备份和跨设备迁移通过 JSON 完成。
- PDF 使用浏览器打印能力,而不是在客户端重新绘制整份简历。
- 主题数量控制在两套,优先完善真实使用场景,而不是堆叠外观接近的模板。
这些取舍让项目能够把重点放在编辑效率、数据自主和稳定导出上,也为后续增加主题、字段或新的导出形式保留了清晰的扩展位置。
本地运行
环境要求:Node.js 18 或更高版本、Bun 1.0 或更高版本。
git clone https://github.com/dodolalorc/resume.dodolalorc.cn.gitcd resume.dodolalorc.cnbun installbun dev开发服务器默认运行在 http://localhost:5173。提交改动前,可以执行:
bun run type-checkbun test:unitbun run buildResume Builder 目前已经覆盖从内容编辑、版式调整到文件导出的完整流程。它希望解决的不是“如何快速套用一个模板”,而是如何用一套可维护、可迁移的数据,持续整理和输出自己的经历。