YAMLResume

Installation

YAMLResume est un outil Node.js qui, sous le capot, transforme vos CV du format YAML vers le code LaTeX puis appelle un moteur de composition LaTeX pour compiler le code LaTeX généré en PDF. De plus, pour obtenir une sortie PDF optimale, nous suggérons également d'installer certaines polices. En résumé, vous devez installer les éléments suivants pour commencer avec YAMLResume :

Cela semble un peu compliqué, mais ne vous inquiétez pas, nous sommes là pour vous.

Utilisateurs Docker

Si vous êtes un utilisateur Docker, vous avez de la chance, nous avons une image docker pour vous. Cette image a tout pré-emballé, y compris :

Vous pouvez créer un nouveau CV instantanément avec la commande suivante :

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

Comment fonctionne cette magie Docker ?

Cette commande créera un nouveau CV appelé my-resume.yml dans votre répertoire actuel. Étapes :

  1. docker run ... yamlresume/yamlresume - exécute un nouveau conteneur depuis l'image yamlresume/yamlresume, si cette image n'existe pas sur votre machine locale, elle sera téléchargée depuis le Docker Hub.
  2. --rm - supprime automatiquement le conteneur quand il se termine
  3. -v $(pwd):/home/yamlresume - monte le répertoire actuel ($(pwd)) dans le conteneur à /home/yamlresume, permettant au conteneur d'accéder aux fichiers locaux
  4. new my-resume.yml - exécute la sous-commande CLI yamlresume new pour créer un nouveau CV avec le nom de fichier my-resume.yml

Modifiez my-resume.yml en conséquence puis construisez le CV de yaml vers pdf :

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

En gros, vous pouvez appeler toutes les sous-commandes CLI yamlresume de cette façon—il suffit d'ajouter la sous-commande après yamlresume/yamlresume puis de suivre le guide d'utilisation correspondant.

Le flag -v ici est assez important car il monte le répertoire actuel ($(pwd)) dans le conteneur à /home/yamlresume, permettant une synchronisation bidirectionnelle de fichiers entre le répertoire local et le conteneur.

Miroir Github

Si vous avez des difficultés à télécharger l'image yamlresume/yamlresume depuis le Docker Hub, ne vous inquiétez pas, nous avons un miroir github pour vous.

Vous pouvez obtenir l'image ghcr par :

docker pull ghcr.io/yamlresume/yamlresume

Problèmes de Permissions

Parfois vous pourriez rencontrer des problèmes de permissions lors de l'exécution du conteneur Docker car l'image yamlresume/yamlresume est construite avec une instruction USER yamlresume, qui par défaut s'exécute avec moins de privilèges.

Il y a deux façons de résoudre ce problème :

  1. Utiliser votre nom d'utilisateur/ID de groupe hôte pour exécuter le conteneur :
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml

C'est la façon recommandée d'exécuter le conteneur. Tant que votre utilisateur hôte a accès au répertoire actuel, vous pouvez exécuter le conteneur avec votre nom d'utilisateur/ID de groupe hôte.

  1. Utiliser -u root pour exécuter le conteneur avec accès root :
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml

C'est la façon la moins recommandée d'exécuter le conteneur. Ce n'est pas recommandé car cela peut causer des problèmes de sécurité, donc vous ne devriez faire cela que si vous êtes sûr de ce que vous faites.

Enfin, si vous exécutez le conteneur Docker yamlresume dans GitHub Actions, alors l'accès root peut être requis selon la documentation de GitHub :

Note: GitHub Actions must be run by the default Docker user (root). Ensure your Dockerfile does not set the USER instruction, otherwise you will not be able to access GITHUB_WORKSPACE.

Ref: Understanding the Docker USER Instruction

Utilisateurs Non-Docker

Si vous n'êtes pas un utilisateur Docker, veuillez suivre les instructions appropriées ci-dessous pour installer le CLI yamlresume et toutes les dépendances nécessaires basées sur votre système d'exploitation. Au moment de l'écriture, notre guide couvre macOS, Windows, et certaines distributions Linux (Ubuntu et distributions basées sur RHEL).

Node.js

Node.js 20.x ou plus récent est requis.

Pourquoi Node.js 20.x ou plus récent ?

Théoriquement yamlresume devrait fonctionner avec Node.js 18, cependant il est fortement recommandé d'utiliser Node.js 20 ou plus récent car Node.js 18 LTS est programmé pour atteindre la fin de vie le 30 avril 2025.

Il peut y avoir comme 100+ méthodes pour installer Node.js sur différents OS, vous pouvez consulter le téléchargement officiel Node.js pour commencer.

Nous recommandons d'utiliser un gestionnaire de paquets pour installer Node.js.

Pour les utilisateurs Homebrew :

brew install node

Pour les utilisateurs Chocolatey :

choco install nodejs.install

Pour Ubuntu 24.10 ou plus récent :

sudo apt install nodejs

Pour Ubuntu 24.04 ou plus ancien, veuillez jeter un œil à NodeSource pour obtenir Node.js 20 ou plus récent.

Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, etc. :

sudo dnf install nodejs

CLI YAMLResume

Installer yamlresume est un jeu d'enfant. Vous pouvez l'installer en utilisant votre gestionnaire de paquets Node.js préféré :

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

Vérifiez que yamlresume est installé avec succès :

$ 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

Si vous voulez juste essayer yamlresume sans l'installer, vous pouvez utiliser npx, pnpx ou d'autres outils similaires :

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

Moteur de Composition

Sous le capot, yamlresume fait le travail d'un compilateur, analysant un CV YAML vers un AST puis transformant l'AST en code LaTeX.

En tant que mini-compilateur, yamlresume s'appuie sur un moteur de composition pour compiler le code LaTeX généré en PDFs. Par conséquent, vous devez d'abord installer un moteur de composition avant de pouvoir utiliser yamlresume pour générer des PDFs de CV.

YAMLResume supporte actuellement deux moteurs de composition : XeTeX et Tectonic.

Pourquoi LaTeX ?

Au moment de l'écriture, LaTeX est toujours le meilleur choix de moteur de composition pour produire des PDFs d'apparence professionnelle. Typst est une excellente alternative, mais il est encore dans sa phase précoce et son support CJK n'est pas mature et prêt pour la production. Précédemment j'ai écrit un post On Typesetting Engines expliquant les raisons pour lesquelles j'ai choisi LaTeX plutôt que d'autres moteurs de composition quand j'ai fondé PPResume.

XeTeX

XeTeX est un moteur de composition TeX utilisant Unicode et supportant les technologies de police modernes comme OpenType, Graphite et Apple Advanced Typography (AAT).

C'est un moteur de composition très mature et stable qui est largement utilisé par de nombreuses personnes académiques et scientifiques.

La façon la plus facile est d'installer la distribution MacTeX.

Elle inclut XeTeX avec de nombreux autres programmes et paquets liés à TeX. Vous pouvez la télécharger depuis le site web MacTeX ou l'installer via homebrew :

brew install mactex

La distribution MiKTeX est un choix populaire pour Windows et inclut XeTeX. Vous pouvez la télécharger depuis le site web MiKTeX.

Alternativement, vous pouvez installer TeX Live pour Windows, qui inclut aussi XeTeX. Téléchargez-le depuis le site web TeX Live.

La plupart des distributions Linux offrent TeX Live via leurs gestionnaires de paquets. XeTeX est typiquement inclus dans le paquet texlive-xetex ou un plus gros méta-paquet texlive-full.

Pour Ubuntu, si votre réseau est bon et vous avez environ 10GB d'espace disque, vous pouvez installer la distribution texlive complète :

sudo apt install texlive-full

Sinon, vous pouvez installer les paquets minimum requis :

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

Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer la distribution TeX Live complète si vous avez assez d'espace disque et un bon réseau :

sudo dnf install texlive-scheme-full

Sinon vous pouvez installer les paquets minimum requis :

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

Alternativement, vous pouvez toujours installer TeX Live directement depuis le site web TeX Live en utilisant leur installateur, qui fonctionne à travers différentes distributions Linux.

Vérifiez que XeTeX est installé avec succès :

$ 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 1.2.11
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 est un moteur TeX/LaTeX moderne, complet et autonome, alimenté par XeTeX et TeXLive.

Une distribution TeX Live complète prend typiquement plusieurs GB d'espace disque, tandis que l'installation initiale de tectonic ne prend que 10+ MB. Il télécharge automatiquement les fichiers de support, donc vous n'avez pas besoin d'installer une distribution LaTeX complète. Quand vous commencez à utiliser un nouveau paquet LaTeX, Tectonic télécharge simplement les fichiers dont il a besoin et continue le traitement.

Tectonic fournit un guide d'installation officiel, mais cela mettrait juste tectonic dans le répertoire où vous avez exécuté la commande d'installation, yamlresume a besoin d'une commande globale tectonic dans votre $PATH, donc vous devez résoudre cela avec quelques astuces shell par vous-même.

Si vous êtes un utilisateur macOS, vous avez de la chance car Homebrew fournit un paquet pré-construit :

brew install tectonic

D'après mon expérience, tectonic a encore quelques problèmes de compatibilité mineurs avec XeTeX officiel, donc si vous ne vous souciez pas du long temps de téléchargement d'une distribution TeX Live complète, XeTeX est toujours le choix recommandé ici.

Police

Linux Libertine

YAMLResume adopte Linux Libertine comme police par défaut pour les caractères latins. Il est fortement recommandé de l'installer afin d'obtenir une sortie PDF optimale.

Pour les utilisateurs Homebrew :

brew install font-linux-libertine

Sinon vous pouvez télécharger la dernière version de Linux Libertine depuis le site web et installer la police avec Font Book de macOS.

Téléchargez la dernière version de Linux Libertine depuis le site web et extrayez l'archive et installez la police.

Pour les utilisateurs Ubuntu, la police Linux Libertine est déjà incluse dans le paquet texlive-fonts-extra, cependant, si vous voulez l'installer manuellement, vous pouvez le faire par :

sudo apt install fonts-linuxlibertine

Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer la police Linux Libertine par :

sudo dnf install linux-libertine-fonts

Google Noto

Si vous avez besoin de CV CJK, vous devrez aussi installer les polices Google Noto pour la meilleure couverture unicode.

Pour les utilisateurs Homebrew :

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

Téléchargez les polices Noto et suivez le guide officiel pour installer sur Windows.

Pour les utilisateurs Ubuntu :

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

Pour Linux basé sur RHEL comme Fedora, AlmaLinux, Rocky Linux, vous pouvez installer les polices Noto par :

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

Dépannage

Vous pouvez créer un problème si vous avez des difficultés à installer yamlresume ou ses dépendances.

Vous pouvez activer la journalisation verbeuse en passant un flag --verbose à yamlresume ou ses sous-commandes.

Vous en avez marre ?

Si vous en avez marre du processus d'installation, vous pouvez essayer PPResume, qui est une solution de constructeur de CV hébergée et commerciale qui a open sourcé YAMLResume.

Edit on GitHub

Last updated on