Beautiful LaTeX CV templates powered by Jinja2
Project description
awesomecv-jinja
Generate professional CVs, resumes, and cover letters from YAML/JSON data using Awesome-CV LaTeX templates.
Table of Contents
Features
- 🎨 Professional templates — Based on Awesome-CV LaTeX templates
- 🚀 Simple API — From data to PDF in one function call
- 🔧 Jinja2 templating — Dynamic content generation with custom delimiters
- 🐳 Flexible compilation — Local xelatex or Docker (no LaTeX installation required)
- 📝 Multiple formats — Generate
.tex,.pdf, or both - 🔌 Extensible — Add your own LaTeX templates
Installation
For CLI usage only (recommended):
pipx install awesomecv-jinja
For Python API usage:
pip install awesomecv-jinja
For PDF generation, install xelatex or use Docker. See docs/docker_setup.md.
CLI Usage
# Generate PDF from YAML
acv resume.yaml
# Specify document type and output
acv data.yaml -d cv -o my_cv.pdf
# Generate LaTeX only (no PDF)
acv resume.yaml --tex-only
# Use local xelatex instead of Docker
acv resume.yaml -e xelatex
# Compile existing .tex file
acv resume.tex
See docs/cli_usage.md for complete CLI documentation.
Python API
Generate PDF
from awesomecv_jinja import render_pdf, load_sample
data = load_sample("resume")
render_pdf(data, output="resume.pdf")
Generate LaTeX only
from awesomecv_jinja import render, load_sample
data = load_sample("resume")
render(data, output="resume.tex")
Customize data
from awesomecv_jinja import render_pdf, load_sample
data = load_sample("resume")
data["first_name"] = "Jane"
data["last_name"] = "Smith"
data["position"] = "Software Engineer"
render_pdf(data, output="jane_smith.pdf")
Document types
from awesomecv_jinja import render_pdf, load_sample
# Resume
render_pdf(load_sample("resume"), doc_type="resume", output="resume.pdf")
# Academic CV
render_pdf(load_sample("cv"), doc_type="cv", output="cv.pdf")
# Cover letter
render_pdf(load_sample("coverletter"), doc_type="coverletter", output="letter.pdf")
Advanced: Use Renderer class
from awesomecv_jinja import Renderer, load_sample
renderer = Renderer(template="awesome_cv")
renderer.render("resume", load_sample("resume"), output="resume.tex")
# List available document types
print(renderer.list_document_types()) # ['resume', 'cv', 'coverletter']
Requirements
- Python 3.10+
- For PDF generation: xelatex (
texlive-full) or Docker
Examples
See examples/ directory:
demo.py— Python API examplespdf_example.py— PDF generationexample_cli.yaml— Sample YAML input
uv run python examples/demo.py
Development
# Fork the repository on GitHub
git clone https://github.com/<your_username>/awesomecv_jinja.git
cd awesomecv_jinja
uv sync
# do something
uv run pytest
git checkout -b feature-branch
git commit -m "Your commit message"
git push origin feature-branch
See CONTRIBUTING.md for contribution guidelines.
Credits
Based on Awesome-CV by @posquit0.
License
- Code: MIT
- Awesome-CV templates: LPPL-1.3c
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file awesomecv_jinja-0.1.0.tar.gz.
File metadata
- Download URL: awesomecv_jinja-0.1.0.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9943cc73e3483c087e651037c60128ecad56ddece53394c081fb1ad7b8fbe5b2
|
|
| MD5 |
2193d521321e1df05041fd29d327aea8
|
|
| BLAKE2b-256 |
0cfdf72d0cc069cedff4c50c6489136ef0ab901286461d809eeee9b21a77fb51
|
File details
Details for the file awesomecv_jinja-0.1.0-py3-none-any.whl.
File metadata
- Download URL: awesomecv_jinja-0.1.0-py3-none-any.whl
- Upload date:
- Size: 38.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94491dc9c38ad88857f3a2cfbecfbb3adbddb4a33801b6fa8c8e15d248cc765e
|
|
| MD5 |
d63dfd1af42fa0702ce91f6d6ab9d970
|
|
| BLAKE2b-256 |
36958badb2051e0c3b71804734fee173045a86577d99e55a67241b360bc3ada2
|