安裝
YAMLResume 是一個 Node.js 工具,在底層,它將您的履歷從 YAML 格式轉換為 LaTeX 代碼,然後調用 LaTeX 排版引擎來編譯生成的 LaTeX 代碼為 PDF。此外,為了獲得最佳的 PDF 輸出,我們還建議安裝一些字型。簡而言之,您需要安裝以下內容才能開始使用 YAMLResume:
- Node.js
- yamlresume 套件
- 排版引擎
- [可選] 一些字型
這聽起來有點複雜,但不用擔心,我們會支援您。
Docker 使用者
如果您是 docker 使用者,您很幸運,我們為您提供了一個 docker 鏡像。這個鏡像包含了所有預打包的內容,包括:
您可以使用以下命令立即建立新履歷:
docker run --rm -v $(pwd):/home/yamlresume yamlresume/yamlresume new my-resume.yml
Docker 魔法是如何工作的?
這個命令將在您的當前目錄中建立一個名為 my-resume.yml
的新履歷。步驟:
docker run ... yamlresume/yamlresume
- 從yamlresume/yamlresume
鏡像運行新容器,如果此鏡像在您的本地機器中不存在,它將從 Docker Hub 拉取。--rm
- 在退出時自動刪除容器-v $(pwd):/home/yamlresume
- 將當前目錄 ($(pwd)
) 掛載到容器中的/home/yamlresume
,允許容器存取本地檔案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
指令構建的,預設情況下以較少的權限運行。
解決此問題有兩種方法:
- 使用您的主機使用者名稱/群組 ID 來運行容器:
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml
這是運行容器的推薦方式。只要您的主機使用者有存取當前目錄的權限,您就可以使用您的主機使用者名稱/群組 ID 運行容器。
- 使用
-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
而不安裝它,您可以使用
npx
、pnpx
或其他類似工具:
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 目前支援兩個排版引擎:XeTeX 和 Tectonic。
XeTeX
XeTeX 是一個使用 Unicode 並支援現代字型技術(如 OpenType、Graphite 和 Apple 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 引擎,由 XeTeX 和 TeXLive 提供支援。
完整的 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。
Last updated on