A specialized web application that converts LaTeX resume documents to clean, professional HTML and deploys them to GitHub Pages. The system automatically processes your LaTeX resume and creates a beautiful, responsive web version with proper styling and typography.
- Automated LaTeX Resume Conversion: Converts
.texresume files to professional HTML with proper formatting - Resume-Specific Styling: Clean, professional presentation optimized for resume content
- CI/CD Pipeline: GitHub Actions workflow that validates and deploys automatically
- Fail-Safe Deployment: Blocks deployment if any LaTeX file fails to convert
- Document Browser: Browse all converted documents in a clean, responsive interface
- MathJax Integration: Proper rendering of mathematical formulas
resume/
├── latex/ # Store your LaTeX resume files here
│ └── resume.tex # Main LaTeX resume document
├── scripts/
│ └── convert-latex.mjs # LaTeX to HTML conversion script
├── src/
│ ├── App.tsx # Main application
│ ├── main.tsx # React entry point
│ └── index.css # Global styles
├── public/
│ ├── converted-docs/ # Generated HTML files (created during build)
│ └── documents-manifest.json # Document metadata (created during build)
├── dist/ # Production build output
└── .github/
└── workflows/
└── deploy.yml # CI/CD pipeline configuration
Place your .tex files in the latex/ directory. The converter will automatically process all files with a .tex extension.
Example structure:
latex/
├── my-research-paper.tex
├── math-notes.tex
└── thesis.tex
Convert and build the project:
pnpm install
pnpm run convert # Convert LaTeX files only
pnpm run build # Convert + build entire project- Go to your GitHub repository settings
- Navigate to Pages section
- Under Source, select "GitHub Actions"
Add your credentials as repository variables for GitHub Actions:
- Go to Settings > Variables > Variables tab
- Click New repository variable
- Add the following variables:
VITE_GOOGLE_DRIVE_RESUME_LINK: Your Google Drive share link for the resume (optional)
git add .
git commit -m "Add LaTeX documents"
git push origin mainThe GitHub Actions workflow will:
- Install dependencies
- Convert all LaTeX files
- Validate conversion success
- Build the React application
- Deploy to GitHub Pages (only if all conversions succeed)
- LaTeX Parsing: Uses
@unified-latexto parse LaTeX source - HTML Generation: Converts LaTeX AST to HTML with proper structure
- MathJax Integration: Mathematical formulas are rendered client-side
- Styling: Applies arXiv-inspired CSS for clean academic presentation
- Manifest Creation: Generates a JSON file with document metadata
The GitHub Actions workflow (.github/workflows/deploy.yml) ensures:
- All LaTeX files convert successfully before deployment
- Build fails if any conversion errors occur
- Only successfully built sites are deployed to GitHub Pages
- Environment variables are properly injected during build
The Supabase database stores:
- Documents Table: Metadata about each LaTeX file (title, author, date)
- Conversion Logs: History of conversion attempts and errors
pnpm run dev- Start development serverpnpm run convert- Convert LaTeX files to HTMLpnpm run build- Convert LaTeX + build production bundlepnpm run preview- Preview production build locallypnpm run lint- Run ESLint
If your repository name is different, update vite.config.ts:
base: process.env.GITHUB_PAGES === 'true' ? '/your-repo-name/' : '/',Modify the CSS in scripts/convert-latex.mjs to customize the HTML output appearance.
The converter extracts metadata from LaTeX commands:
\title{...}- Document title\author{...}- Author names\date{...}- Publication date
Your site will be available at:
https://<username>.github.io/<repository-name>/
Check the GitHub Actions logs to see which LaTeX file failed and why. Common issues:
- Unsupported LaTeX packages
- Syntax errors in LaTeX source
- Missing closing braces
If deployment is blocked, the CI/CD pipeline detected conversion failures. Fix the LaTeX files and push again.
Run the conversion locally to debug issues:
pnpm run convertCheck the generated files in public/converted-docs/ and review public/documents-manifest.json.
- React + TypeScript: Frontend framework
- Vite: Build tool and dev server
- @unified-latex: LaTeX parsing and conversion
- MathJax: Mathematical notation rendering
- Supabase: Database for tracking conversions
- GitHub Actions: CI/CD automation
- GitHub Pages: Static site hosting
- Source Sans Pro: Typography
This project is licensed under the MIT License - see the LICENSE file for details.