YAMLResume

安装

YAMLResume 是一个 Node.js 工具,在底层,它将您的简历从 YAML 格式转换为 LaTeX 代码,然后调用 LaTeX 排版引擎来编译生成的 LaTeX 代码为 PDF。此外,为了获得最佳的 PDF 输出,我们还建议安装一些字体。简而言之,您需要安装以下内容才能开始使用 YAMLResume:

这听起来有点复杂,但不用担心,我们会支持您。

Docker 用户

如果您是 docker 用户,您很幸运,我们为您提供了一个 docker 镜像。这个镜像包含了所有预打包的内容,包括:

您可以使用以下命令立即创建新简历:

docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml

Docker 魔法是如何工作的?

这个命令将在您的当前目录中创建一个名为 my-resume.yml 的新简历。步骤:

  1. docker run ... yamlresume/yamlresume - 从 yamlresume/yamlresume 镜像运行新容器,如果此镜像在您的本地机器中不存在,它将从 Docker Hub 拉取。
  2. --rm - 在退出时自动删除容器
  3. -v $(pwd):/home/yamlresume - 将当前目录 ($(pwd)) 挂载到容器中的 /home/yamlresume,允许容器访问本地文件
  4. new my-resume.yml - 运行 yamlresume CLI new 子命令来创建文件名为 my-resume.yml 的新简历

相应地编辑 my-resume.yml,然后从 yaml 构建简历到 pdf:

docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume build my-resume.yml

基本上,您可以以这种方式调用所有 yamlresume CLI 子命令——只需在 yamlresume/yamlresume 后附加子命令,然后按照相应的使用指南进行操作。

这里的 -v 标志非常重要,因为它将当前目录 ($(pwd)) 挂载到容器中的 /home/yamlresume,允许本地目录和容器之间进行双向文件同步。

Github 镜像

如果您在从 Docker Hub 拉取 yamlresume/yamlresume 镜像时遇到问题,不用担心,我们为您提供了 github 镜像

您可以通过以下方式获取 ghcr 镜像:

docker pull ghcr.io/yamlresume/yamlresume

权限问题

有时您在运行 Docker 容器时可能会遇到权限问题,因为 yamlresume/yamlresume 镜像是使用 USER yamlresume 指令构建的,默认情况下以较少的权限运行。

解决此问题有两种方法:

  1. 使用您的主机用户名/组 ID 来运行容器:
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml

这是运行容器的推荐方式。只要您的主机用户有访问当前目录的权限,您就可以使用您的主机用户名/组 ID 运行容器。

  1. 使用 -u root 以 root 访问权限运行容器:
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml

这是最不推荐的运行容器的方式。不推荐这样做因为它可能导致安全问题,所以您只应该在确信自己在做什么的情况下才这样做。

最后但同样重要的是,如果您在 GitHub Actions 中运行 yamlresume Docker 容器,那么根据 GitHub 的文档,可能需要 root 访问权限:

注意:GitHub Actions 必须由默认的 Docker 用户 (root) 运行。确保您的 Dockerfile 不设置 USER 指令,否则您将无法访问 GITHUB_WORKSPACE。

参考:Understanding the Docker USER Instruction

非 Docker 用户

如果您不是 docker 用户,请按照下面的相应说明根据您的操作系统安装 yamlresume CLI 和所有必要的依赖项。在撰写本文时,我们的指南涵盖了 macOS、Windows 和一些 Linux 发行版(Ubuntu 和基于 RHEL 的发行版)。

Node.js

需要 Node.js 20.x 或更新版本。

为什么需要 Node.js 20.x 或更新版本?

理论上 yamlresume 应该可以与 Node.js 18 一起工作,但是强烈建议使用 Node.js 20 或更新版本,因为 Node.js 18 LTS 计划在 2025 年 4 月 30 日 到达生命周期结束。

在不同的操作系统上可能有 100 多种安装 Node.js 的方法,您可以查看官方的 Node.js 下载 来开始。

我们建议使用包管理器来安装 Node.js。

对于 Homebrew 用户:

brew install node

对于 Chocolatey 用户:

choco install nodejs.install

对于 Ubuntu 24.10 或更新版本:

sudo apt install nodejs

对于 Ubuntu 24.04 或更旧版本,请查看 NodeSource 来获取 Node.js 20 或更新版本。

对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux 等:

sudo dnf install nodejs

YAMLResume CLI

安装 yamlresume 非常简单。您可以使用您喜欢的 Node.js 包管理器来安装它:

npm install -g yamlresume
pnpm add -g yamlresume
yarn global add yamlresume
bun add -g yamlresume

验证 yamlresume 是否安装成功:

$ yamlresume help
Usage: yamlresume [options] [command]

YAMLResume — Resume as Code in YAML

 __   __ _    __  __ _     ____
 \ \ / // \  |  \/  | |   |  _ \ ___  ___ _   _ ___  ___   ___
  \ V // _ \ | |\/| | |   | |_) / _ \/ __| | | / _ \/ _ \ / _ \
   | |/ ___ \| |  | | |___|  _ <  __/\__ \ |_| | | | | | |  __/
   |_/_/   \_\_|  |_|_____|_| \_\___||___/\____|_| |_| |_|\___|


Options:
  -V, --version                  output the version number
  -v, --verbose                  verbose output
  -h, --help                     display help for command

Commands:
  new [filename]                 create a new resume
  build [options] <resume-path>  build a resume to LaTeX and PDF
  dev [options] <resume-path>    build a resume on file changes (watch mode)
  languages                      i18n and l10n support
  templates                      manage resume templates
  validate <resume-path>         validate a resume against the YAMLResume schema
  help [command]                 display help for command

如果您只是想试用 yamlresume 而不安装它,您可以使用 npxpnpx 或其他类似工具:

npx yamlresume help
yarn dlx yamlresume help
pnpx yamlresume help
bun exec yamlresume help

排版引擎

在底层,yamlresume 完成编译器的工作,将 YAML 简历解析为 AST,然后将 AST 转换为 LaTeX 代码

作为一个小型编译器,yamlresume 依赖排版引擎来编译生成的 LaTeX 代码为 PDF。因此,您必须首先安装排版引擎,然后才能使用 yamlresume 生成简历 PDF。

YAMLResume 目前支持两个排版引擎:XeTeXTectonic

为什么选择 LaTeX?

在撰写本文时,LaTeX 仍然是 生成专业外观 PDF 的最佳排版引擎选择。 Typst 是一个很好的替代品,但它仍然处于 早期阶段,其 CJK 支持还不成熟,不适合生产使用。 之前我写了一篇文章关于排版引擎,解释了我创立 PPResume 时为什么选择 LaTeX 而不是其他排版引擎的原因。

XeTeX

XeTeX 是一个使用 Unicode 并支持现代字体技术(如 OpenTypeGraphiteApple Advanced Typography (AAT))的 TeX 排版引擎。

它是一个非常成熟、稳定的排版引擎,被许多学术和科学人员广泛使用。

最简单的方法是安装 MacTeX 发行版。

它包括 XeTeX 以及许多其他与 TeX 相关的程序和包。您可以从 MacTeX 网站 下载它,或通过 homebrew 安装:

brew install mactex

MiKTeX 发行版 是 Windows 的热门选择,包括 XeTeX。您可以从 MiKTeX 网站 下载它。

或者,您可以为 Windows 安装 TeX Live,它也包括 XeTeX。从 TeX Live 网站 下载。

大多数 Linux 发行版通过其包管理器提供 TeX Live。XeTeX 通常包含在 texlive-xetex 包或更大的 texlive-full 元包中。

对于 Ubuntu,如果您的网络良好并且有大约 10GB 的磁盘空间,您可以安装完整的 texlive 发行版:

sudo apt install texlive-full

否则,您可以安装最低要求的包:

sudo apt install texlive-xetex texlive-fonts-extra texlive-lang-all

对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,如果您有足够的磁盘空间和良好的网络,您可以安装完整的 TeX Live 发行版:

sudo dnf install texlive-scheme-full

否则您可以安装最低要求的包:

sudo dnf install \
  texlive-scheme-medium \
  texlive-moderncv \
  texlive-ctex \
  texlive-academicons

或者,您始终可以直接从 TeX Live 网站 使用他们的安装程序安装 TeX Live,这适用于不同的 Linux 发行版。

验证 XeTeX 是否安装成功:

$ xetex -v
XeTeX 3.141592653-2.6-0.999994 (TeX Live 2022)
kpathsea version 6.3.4
Copyright 2022 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 70.1; using 70.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.11.1; using 2.11.1
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 3.4.0; using 3.4.0
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with pplib version v2.05 less toxic i hope
Using Mac OS X Core Text and Cocoa frameworks

Tectonic

Tectonic 是一个现代化、完整、自包含的 TeX/LaTeX 引擎,由 XeTeXTeXLive 提供支持。

完整的 TeX Live 发行版通常占用几 GB 的磁盘空间,而 tectonic 的初始安装只占用 10+ MB。它自动下载支持文件,所以您不必安装完整的 LaTeX 发行版。当您开始使用新的 LaTeX 包时,Tectonic 只需下载它需要的文件并继续处理。

Tectonic 提供官方安装指南,但这只会将 tectonic 放在您运行安装命令的目录中,yamlresume 需要在您的 $PATH 中有一个全局的 tectonic 命令,所以您需要通过一些 shell 技巧自己解决这个问题。

如果您是 macOS 用户,您很幸运,因为 Homebrew 提供预构建的包:

brew install tectonic

根据我的经验,tectonic 与官方 XeTeX 仍然存在一些小的兼容性问题,所以如果您不介意完整 TeX Live 发行版的长下载时间,XeTeX 仍然是这里的推荐选择。

字体

Linux Libertine

YAMLResume 采用 Linux Libertine 作为拉丁字符的默认字体。强烈建议安装它以获得最佳的 PDF 输出。

对于 Homebrew 用户:

brew install font-linux-libertine

否则您可以从网站下载最新版本的 Linux Libertine 并使用 macOS 的 Font Book 安装字体。

从网站下载最新版本的 Linux Libertine 并解压缩档案并安装字体。

对于 Ubuntu 用户,Linux Libertine 字体已包含在 texlive-fonts-extra 包中,但是,如果您想手动安装它,您可以这样做:

sudo apt install fonts-linuxlibertine

对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通过以下方式安装 Linux Libertine 字体:

sudo dnf install linux-libertine-fonts

Google Noto

如果您需要 CJK 简历,您还需要安装 Google Noto 字体 以获得最佳的 unicode 覆盖

对于 Homebrew 用户:

brew install font-noto-sans-cjk font-noto-serif-cjk

下载 Noto 字体并按照官方指南在 Windows 上安装。

对于 Ubuntu 用户:

sudo apt install fonts-noto-cjk fonts-noto-cjk-extra

对于基于 RHEL 的 linux,如 Fedora、AlmaLinux、Rocky Linux,您可以通过以下方式安装 Noto 字体:

sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts

故障排除

如果您在安装 yamlresume 或其依赖项时遇到问题,您可以提出问题

您可以通过向 yamlresume 或其子命令传递 --verbose 标志来启用详细日志记录。

感到疲惫?

如果您对安装过程感到疲惫,您可以尝试 PPResume,这是一个托管的商业简历构建器解决方案,它开源了 YAMLResume。

Edit on GitHub

Last updated on