yamlresume/yamlresume · 上手攻略
- 仓库:yamlresume/yamlresume
- 链接:https://github.com/yamlresume/yamlresume
- 分类:academic-writing
- 作者:Tom
- 更新:2026-08-22
这是什么
yamlresume 是一个简历即代码工具:用 YAML 写简历内容,用命令行生成专业排版的 PDF / DOCX / HTML / Markdown 输出。它源自 PPResume(一个 LaTeX 简历构建器),核心理念是关注点分离——内容与样式分离,YAML 管内容,LaTeX/Templating 管排版。
最大的差异化卖点是:一次 YAML,生成多种格式,支持 GitHub Actions CI/CD 自动化,还有国际化支持(9 种语言)。YAML 文件可以版本控制、Pull Request 协作、Docker 一键运行——彻底摆脱"我改了简历但没同步到 PDF" 的烦恼。
解决什么问题
传统简历管理的问题:
- Word 简历格式混乱,不同公司发不同版本,时间久了不知道哪个是最新版
- 每次改内容要重新排版,复制粘贴容易出错
- 无法做 Git 历史追溯,不知道哪次更新改了什么东西
- 设计师给的模板换个内容就变形
yamlresume 的解决思路:YAML 是纯文本,Git 友好;LaTeX 排版专业,不需要设计师;一次定义,多格式输出;CI/CD 自动化——每次 merge 到 main 自动生成最新版 PDF。
快速安装
方式一:Docker(最简单,1 秒上手)
docker run -it --rm \
-v $(pwd):/app \
yamlresume/yamlresume build your-resume.yml
⚠️ 容器内已包含 yamlresume CLI 和所有依赖(XeTeX、Tectonic 等),无需单独安装 TeX 发行版。
方式二:npm / yarn / pnpm / bun(Node.js 生态)
# npm
npm install -g yamlresume
# yarn
yarn global add yamlresume
# pnpm
pnpm add -g yamlresume
# bun
bun add -g yamlresume
方式三:Homebrew(macOS / Linux)
brew install yamlresume
方式四:从源码
git clone https://github.com/yamlresume/yamlresume.git
cd yamlresume
pnpm install # 或 npm install
pnpm build
⚠️ 源码编译需要 Node.js 环境。
依赖检查
yamlresume doctor
会检查 XeTeX / Tectonic(PDF 生成引擎)和 Linux Libertine 字体是否正确安装。
XeTeX 安装方式:
- macOS:brew install --cask mactex 或 minimaltex
- Ubuntu/Debian:apt install texlive-xetex
- Windows:安装 TeX Live
Linux Libertine 字体(推荐但非必须,影响 PDF 外观):
# Ubuntu/Debian
sudo apt install fonts-linuxlibertine
核心用法
创建新简历
yamlresume new my-resume.yml
会基于模板创建一个 my-resume.yml,包含完整字段结构。
生成多格式输出
yamlresume build my-resume.yml
会同时生成:
- my-resume.pdf(XeLaTeX 编译,专业排版)
- my-resume.tex(LaTeX 源文件)
- my-resume.docx(Word 兼容格式)
- my-resume.html(网页格式)
- my-resume.md(纯 Markdown)
⚠️ PDF 生成依赖 XeTeX 或 Tectonic,首次运行较慢(编译 LaTeX)。
开发预览模式(热重载)
yamlresume dev my-resume.yml
监听 YAML 文件变化,自动重新生成——类似前端开发的热重载体验。
验证 YAML 语法
yamlresume validate my-resume.yml
内置 JSON Schema 校验,提前发现字段缺失或类型错误。
AI 辅助生成
yamlresume ai my-resume.yml
用 AI 根据你的背景自动填充简历内容(需要 AI API Key)。
管理模板
yamlresume templates list # 查看可用模板
yamlresume templates use <name> # 切换模板
YAML 文件结构一览
完整字段参考可查看示例文件:packages/cli/src/commands/fixtures/software-engineer.yml
典型结构:
name: "张三"
email: "zhangsan@example.com"
phone: "+86-138-0000-0000"
location: "北京"
summary: "资深后端工程师,10 年以上分布式系统经验"
experience:
- company: "某大厂"
position: "高级工程师"
start: "2020-03"
end: "至今"
highlights:
- "主导了某核心系统重构,QPS 从 1 万提升至 10 万"
education:
- institution: "某 Top 大学"
degree: "硕士"
field: "计算机科学"
start: "2015-09"
end: "2018-06"
skills:
- name: "编程语言"
items: ["Go", "Python", "Rust"]
certifications:
- name: "AWS Solutions Architect"
date: "2023-05"
典型适用场景
- 工程师简历管理:用 Git 管理多个版本的简历,针对不同岗位(JAVA 后端 / Go 微服务 / 全栈)维护不同分支
- CI/CD 自动化:GitHub Actions 每次 push 自动生成 PDF,简历链接始终指向最新版本
- 团队内推自动化:公司内推系统需要上传 DOCX / PDF,一行命令搞定格式转换
- 多语言简历:用同一份 YAML 通过
--lang参数生成不同语言版本(需模板支持)
坑与注意
⚠️ PDF 排版依赖 TeX 发行版:XeTeX 首次安装包较大(完整 TeX Live ~5GB),可用 TinyTeX 或 Tectonic 代替。
⚠️ YAML Schema 版本锁定:yamlresume 有自己的 JSON Schema,字段名和结构需要跟 CLI 版本对应。yamlresume validate 是你的好朋友,每次修改后都跑一遍。
⚠️ Docker 方式字体限制:容器内字体有限,特殊字符或 CJK 字体可能无法正确渲染。如需完美中文排版,建议本地安装 XeTeX + Linux Libertine。
⚠️ 模板生态还在发展中:内置模板数量有限,高级自定义排版可能需要自己写 LaTeX 模板。
⚠️ AI 辅助功能依赖外部 API:yamlresume ai 需要配置 OpenAI 或兼容 API key,有成本和隐私考量。
⚠️ GitHub Actions 是加分项而非开箱即用:Action 模板有文档,但需要自己配置 Secret 和触发条件。
与同类对比
| 维度 | yamlresume | jsonresume | Rezume | Latex简历 |
|---|---|---|---|---|
| 内容格式 | YAML | JSON | YAML | LaTeX |
| 多格式导出 | PDF/DOCX/HTML/MD | HTML/PDF | PDF/HTML | 仅 PDF |
| Git 友好 | ✅ | ✅ | ✅ | ⚠️ LaTeX 二进制 |
| Docker 支持 | ✅ 一键运行 | ⚠️ | ⚠️ | ❌ |
| CI/CD 集成 | ✅ GitHub Action | ⚠️ | ⚠️ | ❌ |
| 国际化 | ✅ 9 种语言 | ⚠️ | ❌ | ⚠️ |
| 中文排版 | ⚠️ 需配置 | ⚠️ | ❌ | ✅ |
| 活跃度 | 🚀 活跃更新 | 维护中 | 一般 | 模板丰富 |
如果你需要的是纯技术简历(英文为主),jsonresume 生态更成熟、模板更多。如果你需要中文 + 多格式 + Docker 一键,yamlresume 更适合。"简历即代码"这件事本身,yamlresume 做得最彻底的是 CI/CD 集成——GitHub Actions 每次 push 自动 build PDF,这才是真正的自动化。
一句话结论
yamlresume 把简历做成了代码:YAML 版本控制、Docker 一键运行、GitHub Actions 自动出 PDF——工程师简历管理的最优解,唯一的门槛是搞定 XeTeX。