YAMLResume

Instalación

YAMLResume es una herramienta de Node.js, bajo el capó, transforma tus currículums del formato YAML a código LaTeX y luego llama a un motor de composición tipográfica LaTeX para compilar el código LaTeX generado a PDF. Además, para obtener una salida PDF óptima, también sugerimos instalar algunas fuentes. En resumen, necesitas instalar lo siguiente para comenzar con YAMLResume:

  • Node.js
  • paquete yamlresume
  • un motor de composición tipográfica
  • [opcional] algunas fuentes

Esto suena un poco complicado, pero no te preocupes, te cubrimos.

Usuarios de Docker

Si eres usuario de docker, estás de suerte, tenemos una imagen de docker para ti. Esta imagen tiene todo pre-empaquetado, incluyendo:

Puedes crear un nuevo currículum instantáneamente con el siguiente comando:

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

¿Cómo funciona esta magia de Docker?

Este comando creará un nuevo currículum llamado my-resume.yml en tu directorio actual. Pasos:

  1. docker run ... yamlresume/yamlresume - ejecuta un nuevo contenedor desde la imagen yamlresume/yamlresume, si esta imagen no existe en tu máquina local, la descargará desde Docker Hub.
  2. --rm - elimina automáticamente el contenedor cuando sale
  3. -v $(pwd):/home/yamlresume - monta el directorio actual ($(pwd)) en el contenedor en /home/yamlresume, permitiendo al contenedor acceder a archivos locales
  4. new my-resume.yml - ejecuta el subcomando new del CLI de yamlresume para crear un nuevo currículum con el nombre de archivo my-resume.yml

Edita my-resume.yml en consecuencia y luego construye el currículum de yaml a pdf:

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

Básicamente, puedes llamar a todos los subcomandos del CLI de yamlresume de esta manera—simplemente agrega el subcomando después de yamlresume/yamlresume y luego sigue la guía de uso correspondiente.

La bandera -v aquí es bastante importante porque monta el directorio actual ($(pwd)) en el contenedor en /home/yamlresume, permitiendo una sincronización de archivos bidireccional entre el directorio local y el contenedor.

Espejo de Github

Si tienes problemas para descargar la imagen yamlresume/yamlresume desde Docker Hub, no te preocupes, tenemos un espejo de github para ti.

Puedes obtener la imagen ghcr mediante:

docker pull ghcr.io/yamlresume/yamlresume

Problemas de Permisos

A veces puedes encontrar problemas de permisos al ejecutar el contenedor Docker porque la imagen yamlresume/yamlresume está construida con una instrucción USER yamlresume, que por defecto se ejecuta con menos privilegios.

Hay dos formas de resolver este problema:

  1. Usa tu nombre de usuario/ID de grupo del host para ejecutar el contenedor:
docker run --rm -v $(pwd):/home/yamlresume -u $(id -u):$(id -g) yamlresume/yamlresume new my-resume.yml

Esta es la forma recomendada de ejecutar el contenedor. Siempre que tu usuario host tenga acceso al directorio actual, puedes ejecutar el contenedor con tu nombre de usuario/ID de grupo del host.

  1. Usa -u root para ejecutar el contenedor con acceso root:
docker run --rm -v $(pwd):/home/yamlresume -u root yamlresume/yamlresume new my-resume.yml

Esta es la forma menos recomendada de ejecutar el contenedor. No se recomienda porque puede causar problemas de seguridad, por lo que solo debes hacer esto si estás seguro de lo que estás haciendo.

Por último, pero no menos importante, si estás ejecutando el contenedor Docker yamlresume en GitHub Actions, entonces el acceso root puede ser requerido según la documentación de GitHub:

Nota: GitHub Actions debe ser ejecutado por el usuario Docker predeterminado (root). Asegúrate de que tu Dockerfile no establezca la instrucción USER, de lo contrario no podrás acceder a GITHUB_WORKSPACE.

Ref: Entendiendo la Instrucción USER de Docker

Usuarios No-Docker

Si no eres un usuario de docker, sigue las instrucciones apropiadas a continuación para instalar el CLI de yamlresume y todas las dependencias necesarias según tu sistema operativo. Al momento de escribir esto, nuestra guía cubre macOS, Windows y algunas distribuciones de Linux (Ubuntu y distribuciones basadas en RHEL).

Node.js

Se requiere Node.js 20.x o posterior.

¿Por qué Node.js 20.x o posterior?

Teóricamente yamlresume debería funcionar con Node.js 18, sin embargo, se recomienda encarecidamente usar Node.js 20 o posterior porque Node.js 18 LTS está programado para llegar al final de su vida útil el 30 de abril de 2025.

Puede haber más de 100 métodos para instalar Node.js en diferentes sistemas operativos, puedes consultar la Descarga oficial de Node.js para comenzar.

Recomendamos usar un gestor de paquetes para instalar Node.js.

Para usuarios de Homebrew:

brew install node

Para usuarios de Chocolatey:

choco install nodejs.install

Para Ubuntu 24.10 o posterior:

sudo apt install nodejs

Para Ubuntu 24.04 o anterior, por favor echa un vistazo a NodeSource para obtener Node.js 20 o posterior.

Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, etc.:

sudo dnf install nodejs

CLI de YAMLResume

Instalar yamlresume es muy fácil. Puedes instalarlo usando tu gestor de paquetes de Node.js favorito:

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

Si eres usuario de macOS y usas Homebrew, también puedes instalar yamlresume vía Homebrew:

brew install yamlresume

Verifica que yamlresume se haya instalado correctamente:

$ 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 solo quieres probar yamlresume sin instalarlo, puedes usar npx, pnpx u otras herramientas similares:

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

Motor de Composición Tipográfica

Bajo el capó, yamlresume hace el trabajo de un compilador, analizando un currículum YAML a un AST y luego transformando el AST a código LaTeX.

Como un mini-compilador, yamlresume depende de un motor de composición tipográfica para compilar el código LaTeX generado a PDFs. Por lo tanto, primero debes instalar un motor de composición tipográfica antes de poder usar yamlresume para generar PDFs de currículum.

YAMLResume actualmente soporta dos motores de composición tipográfica: XeTeX y Tectonic.

¿Por qué LaTeX?

Al momento de escribir esto, LaTeX sigue siendo la mejor opción de motor de composición tipográfica para producir PDFs de aspecto profesional. Typst es una gran alternativa, pero aún está en su etapa temprana y su soporte CJK no es maduro ni está listo para producción todavía. Anteriormente escribí una publicación Sobre Motores de Composición Tipográfica explicando las razones por las que elegí LaTeX sobre otros motores de composición tipográfica cuando fundé PPResume.

XeTeX

XeTeX es un motor de composición tipográfica TeX que usa Unicode y soporta tecnologías de fuentes modernas como OpenType, Graphite y Apple Advanced Typography (AAT).

Es un motor de composición tipográfica muy maduro y estable que es ampliamente utilizado por muchas personas académicas y científicas.

La forma más fácil es instalar la distribución MacTeX.

Incluye XeTeX junto con muchos otros programas y paquetes relacionados con TeX. Puedes descargarlo desde el sitio web de MacTeX o instalarlo vía homebrew:

# install the full mactex
brew install mactex
# or if you want to save some disk space
brew install mactex-no-gui

La distribución MiKTeX es una opción popular para Windows e incluye XeTeX. Puedes descargarla desde el sitio web de MiKTeX.

Alternativamente, puedes instalar TeX Live para Windows, que también incluye XeTeX. Descárgalo desde el sitio web de TeX Live.

La mayoría de las distribuciones de Linux ofrecen TeX Live a través de sus gestores de paquetes. XeTeX está típicamente incluido en el paquete texlive-xetex o un meta-paquete texlive-full más grande.

Para Ubuntu, si tu red es buena y tienes alrededor de 10GB de espacio en disco, puedes instalar la distribución completa de texlive:

sudo apt install texlive-full

De lo contrario, puedes instalar los paquetes mínimos requeridos:

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

Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar la distribución completa de TeX Live si tienes suficiente espacio en disco y buena red:

sudo dnf install texlive-scheme-full

De lo contrario, puedes instalar los paquetes mínimos requeridos:

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

Alternativamente, siempre puedes instalar TeX Live directamente desde el sitio web de TeX Live usando su instalador, que funciona en diferentes distribuciones de Linux.

Verifica que XeTeX se haya instalado correctamente:

$ 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 es un motor moderno, completo y auto-contenido de TeX/LaTeX, impulsado por XeTeX y TeXLive.

Una distribución completa de TeX Live típicamente ocupa varios GB de espacio en disco, mientras que la instalación inicial de tectonic ocupa solo 10+ MB. Descarga automáticamente los archivos de soporte, por lo que no tienes que instalar una distribución completa de LaTeX. Cuando comienzas a usar un nuevo paquete de LaTeX, Tectonic simplemente descarga los archivos que necesita y continúa procesando.

Tectonic proporciona una guía de instalación oficial, pero esto simplemente pondría tectonic en el directorio donde ejecutaste el comando de instalación, yamlresume necesita un comando tectonic global en tu $PATH, así que necesitas resolver eso con algunos trucos de shell por tu cuenta.

Si eres usuario de macOS, estás de suerte porque Homebrew proporciona un paquete preconstruido:

brew install tectonic

En mi experiencia, tectonic todavía tiene algunos problemas menores de compatibilidad con el XeTeX oficial, así que si no te importa el largo tiempo de descarga de una distribución completa de TeX Live, XeTeX sigue siendo la opción recomendada aquí.

Fuente

Linux Libertine

YAMLResume adopta Linux Libertine como la fuente predeterminada para caracteres latinos. Se recomienda encarecidamente instalarla para obtener una salida PDF óptima.

Para usuarios de Homebrew:

brew install font-linux-libertine

De lo contrario, puedes descargar la última versión de Linux Libertine desde el sitio web e instalar la fuente con el Catálogo Tipográfico de macOS.

Descarga la última versión de Linux Libertine desde el sitio web, extrae el archivo e instala la fuente.

Para usuarios de Ubuntu, la fuente Linux Libertine ya está incluida en el paquete texlive-fonts-extra, sin embargo, si quieres instalarla manualmente, puedes hacerlo mediante:

sudo apt install fonts-linuxlibertine

Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar la fuente Linux Libertine mediante:

sudo dnf install linux-libertine-fonts

Google Noto

Si necesitas currículums en CJK, también necesitarás instalar fuentes Google Noto para mejor cobertura unicode.

Para usuarios de Homebrew:

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

Descarga fuentes Noto y sigue la guía oficial para instalar en Windows.

Para usuarios de Ubuntu:

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

Para linux basado en RHEL como Fedora, AlmaLinux, Rocky Linux, puedes instalar las fuentes Noto mediante:

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

Solución de Problemas

Puedes abrir un problema si tienes problemas para instalar yamlresume o sus dependencias.

Puedes habilitar el registro detallado pasando una bandera --verbose a yamlresume o sus subcomandos.

¿Cansado?

Si te estás cansando del proceso de instalación, puedes probar PPResume, que es una solución de construcción de currículums comercial y alojada que hizo de código abierto a YAMLResume.

Edit on GitHub

Last updated on