Configuración personal para generar y publicar currículums en PDF usando RenderCV y GitHub Pages.
Este repositorio mantiene actualizadas distintas versiones de mi CV (Full-Stack, Mobile, Ingeniería de Sistemas, etc.).
La información y el diseño están separados en archivos YAML. Utiliza RenderCV encapsulado en Docker para compilar los PDFs localmente sin instalar dependencias en el sistema, y un workflow de GitHub Actions que automatiza la generación de los PDFs, construye un catálogo dinámico en formato JSON y despliega todo automáticamente a GitHub Pages para consumirlo desde un portafolio web.
- Docker instalado y en ejecución (para compilación local).
- Bash.
- Node.js (opcional, para probar la generación del catálogo JSON localmente).
Cada versión del CV se encuentra en su propio directorio con la siguiente estructura:
+-- CV-Nombre-De-La-Version/
| +-- cv.yaml # Datos del CV: experiencia, educación, proyectos
| +-- design.yaml # Márgenes, fuentes, colores y tema visual
| +-- locale.yaml # Idioma de encabezados y textos
| +-- settings.yaml # Configuración de RenderCV
El sistema detecta el rol y el idioma a partir del nombre de la carpeta (soporta sufijos ISO de 2 y 3 letras):
CV-Angel-Cecilio-Fullstack-> Rol:Fullstack| Idioma:ESCV-Angel-Cecilio-Fullstack-EN-> Rol:Fullstack| Idioma:ENResume-JohnDoe-Frontend-ENG-> Rol:Frontend| Idioma:ENG
Para generar el PDF, ejecuta el script render.sh pasando como argumento el nombre de la carpeta correspondiente:
# Dar permisos al script solo la primera vez
chmod +x render.sh
# Generar el PDF
./render.sh <nombre-de-la-carpeta>Ejemplo:
./render.sh CV-Angel-Cecilio-FullstackEl script procesa los archivos y guarda el PDF generado dentro de la carpeta PDFs/.
Para probar la generación del catálogo JSON en local tras compilar:
node scripts/generate-catalog.jsEste repositorio incluye un workflow en .github/workflows/render.yml que realiza el flujo completo de compilación y publicación:
[ Push / Dispatch ] --> [ Compilar PDFs ] --> [ Generar Catalog JSON ] --> [ Publicar en gh-pages ]
- Compilación selectiva: En cada
pushamain, detecta y procesa únicamente las carpetas de perfil modificadas. - Ejecución manual (
workflow_dispatch):profile: allgenera todos los perfiles.profile: CV-Nombre-De-La-Versiongenera solo el perfil seleccionado.
- Generación de Catálogo: Ejecuta
scripts/generate-catalog.jspara construir el archivopublic/catalog/index.json. - Despliegue: Publica el contenido de
public/en la ramagh-pagesmediantepeaceiris/actions-gh-pages@v3.
[
{
"id": "CV-Angel-Cecilio-Fullstack",
"role": "Fullstack",
"language": "ES",
"url": "https://<usuario>.github.io/<repo>/PDFs/CV-Angel-Cecilio-Fullstack.pdf",
"lastUpdated": "2026-07-22T15:00:00.000Z"
}
]- Para crear una nueva versión del CV, basta con duplicar una de las carpetas, modificar los datos en
cv.yamly hacer push amain.