Professional CV/Resume with dual outputs:
- 📄 PDF: LaTeX-generated professional resumes in English and Spanish
- 🌐 Website: Modern portfolio hosted on GitHub Pages
Both formats are automatically built and deployed via GitHub Actions on every push to main.
- 🌍 Live Website: https://zp1ke.github.io/cv/
- 📥 Download PDF: English | Español
This project includes a DevContainer configuration for easy setup with VS Code:
- Pre-configured with LaTeX (TeXLive full scheme) and Node.js
- LaTeX Workshop extension
- No manual installation required
- xelatex command available on system path
Windows: Download from MiKTeX
Linux:
sudo apt install texlive-xetex texlive-fonts-recommended texlive-fonts-extraMacOS: Download from MacTeX
- Node.js 18+ and npm
- Download from nodejs.org
Windows:
.\scripts\build-resume.cmd [LANGUAGE_CODE]Linux and MacOS:
sh ./scripts/build-resume.sh [LANGUAGE_CODE]Supported language codes: en, es
cd website
npm install # First time only
npm run dev # Development server at http://localhost:4321
npm run build # Production buildPush to master branch to trigger automatic build and deployment:
- ✅ Both PDFs are compiled
- ✅ Website is built with Astro
- ✅ Everything deployed to GitHub Pages
resume.tex- Main LaTeX documentdocument-format.cls- Custom document classresume/en/- English content filesresume/es/- Spanish content filesscripts/- Build scripts
website/- Astro static sitesrc/data/- CV content in JSON formatsrc/components/- Reusable componentssrc/pages/- Routes (bilingual)public/- Static assets
.github/copilot-instructions.md- Comprehensive project guidewebsite/README.md- Website-specific documentation
Important: This project maintains content in TWO formats:
- LaTeX (.tex files) for PDF generation
- JSON (in
website/src/data/) for web display
When updating your CV, you must update BOTH formats to keep them in sync.
Workflow:
# 1. Update LaTeX content
vim resume/en/experience.tex
# 2. Update corresponding JSON
vim website/src/data/cv-en.json
# 3. Commit both together
git add resume/en/experience.tex website/src/data/cv-en.json
git commit -m "Add new work experience"
# 4. Push to trigger automatic deployment
git pushTo use your own domain instead of zp1ke.github.io/cv:
- Create
website/public/CNAMEwith your domain - Update
website/astro.config.mjs(changesiteandbase) - Configure DNS records at your domain provider
- Enable custom domain in GitHub Pages settings
See website/README.md for detailed instructions.
- FontAwesome 4.x - Icon font
- Astro - Static site generator
- Custom LaTeX document class based on Awesome CV
When updating the CV:
- Update both LaTeX and JSON content files
- Maintain consistency across both language versions (English/Spanish)
- Use reverse chronological order for experience/education
- Test both PDF compilation and website build before committing
- Follow the coding standards in
.github/copilot-instructions.md