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"

典型适用场景

  1. 工程师简历管理:用 Git 管理多个版本的简历,针对不同岗位(JAVA 后端 / Go 微服务 / 全栈)维护不同分支
  2. CI/CD 自动化:GitHub Actions 每次 push 自动生成 PDF,简历链接始终指向最新版本
  3. 团队内推自动化:公司内推系统需要上传 DOCX / PDF,一行命令搞定格式转换
  4. 多语言简历:用同一份 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 辅助功能依赖外部 APIyamlresume 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。