Skip to main content

LaTeX CV generator engine from a YAML input file

Reason this release was yanked:

TinyTeX is missing in this release!

Project description

RenderCV

tests coverage pypi-version pypi-downloads

RenderCV is a $\LaTeX$ CV/resume generator from a JSON/YAML input file. The primary motivation behind the RenderCV is to allow the separation between the content and design of a CV.

It takes a YAML file that looks like this:

cv:
  name: John Doe
  location: Your Location
  email: youremail@yourdomain.com
  phone: tel:+90-541-999-99-99
  website: https://yourwebsite.com/
  social_networks:
    - network: LinkedIn
      username: yourusername
    - network: GitHub
      username: yourusername
  sections:
    summary:
      - This is an example resume to showcase the capabilities
        of the open-source LaTeX CV generator, [RenderCV](https://github.com/sinaatalay/rendercv).
        A substantial part of the content is taken from [here](https://www.careercup.com/resume),
        where a *clean and tidy CV* pattern is proposed by **Gayle
        L. McDowell**.
    education:
      - start_date: 2000-09
        end_date: 2005-05
        highlights:
          - 'GPA: 3.9/4.0 ([Transcript](https://example.com))'
          - '**Coursework:** Software Foundations, Computer Architecture,
            Algorithms, Artificial Intelligence, Comparison of
            Learning Algorithms, Computational Theory.'
        institution: University of Pennsylvania
        area: Computer Science
        degree: BS
    experience:
    ...

And then produces these PDFs and their $\LaTeX$ code (click on images to preview PDFs):

classic theme sb2nov theme moderncv theme
Classic Theme Example of RenderCV Sb2nov Theme Example of RenderCV Moderncv Theme Example of RenderCV

It also generates an HTML file so that the content can be pasted into Grammarly for spell-checking:

Grammarly for RenderCV

RenderCV also validates the input file, and if there are any problems, it tells users where the issues are and how they can fix them:

CLI of RenderCV

Quick Start Guide

RenderCV doesn't require a $\LaTeX$ installation; it comes with it!

  1. Install Python (3.10 or newer).
  2. Run the command below to install RenderCV.
    pip install rendercv
    
  3. Run the command below to generate a starting input file (Full_Name_CV.yaml).
    rendercv new "Full Name"
    
  4. Edit the contents of Full_Name_CV.yaml in your favorite editor (tip: use an editor that supports JSON Schemas).
  5. Run the command below to generate your $\LaTeX$ CV.
    rendercv render Full_Name_CV.yaml
    

You can find a comprehensive user guide that covers the data model (YAML structure) and adding custom themes in greater detail here.

Motivation

Writing the content of a CV and designing a CV are separate issues, and they should be treated separately. RenderCV attempts to provide this separation. With this approach, users are encouraged not to worry too much about the appearance of their CV but to concentrate on the content.

You can automatize your CV generation process with RenderCV and version control your CV in a well-structured manner. It will make updating your CV as simple as updating the YAML input file.

Here are some answers to frequently asked questions about RenderCV:

Why should I bother using RenderCV instead of $\LaTeX$? I can version-control $\LaTeX$ code too!

Because:

  • RenderCV is a tool that allows you to separate your CV content from your $\LaTeX$ code. $\LaTeX$ is still there, and you can leverage it by moving your custom $\LaTeX$ CV to RenderCV.
  • You might want to version control the content and design of your CV separately without mixing them into each other. You cannot achieve this with $\LaTeX$. If you have a plain $\LaTeX$ CV, changing your design will require you to do almost everything from scratch.
  • Updating a YAML file may be easier than updating a $\LaTeX$ file.
  • You will have a lot of code duplication if you make your CV in $\LaTeX$ because a CV is a list of sections with lists of entries. With RenderCV, you will have only one $\LaTeX$ code for each entry type, which will be duplicated automatically based on the YAML input.
  • Spell checking may be difficult to do in $\LaTeX$. You will need to copy and paste each sentence separately to some other software for spell-checking. With RenderCV, it's one copy-paste.

Is it flexible enough?

RenderCV gives you the flexibility required for a CV, but not more. RenderCV forces users to be strict about the content of their CVs, and that's helpful! A CV is a strict and structured document, and you may not want to change that strictness arbitrarily.

You can't make design mistakes with RenderCV, but you can be flexible enough. It supports Markdown syntax, so you can put links anywhere or make your text italic or bold. Additionally, you can specify various design options (margins, colors, font sizes, etc.) in your input file's design section.

Isn't putting all of my data into a YAML file cumbersome?

If you do it for RenderCV once, you may not have to do it again for a long time. It will help you to avoid this process in the future.

Documentation

The source code of RenderCV is well-commented and documented. Reading the source code might be fun as the software structure is explained with docstrings and comments.

A detailed user guide can be found here.

Reference to the code can be found here.

The changelog can be found here.

Contributing

All contributions to RenderCV are welcome! For development, you will need to clone the repository recursively, as TinyTeX is being used as a submodule:

git clone --recursive https://github.com/sinaatalay/rendercv.git

All code and development tool specifications are in pyproject.toml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rendercv-1.0.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

rendercv-1.0-py3-none-any.whl (59.7 kB view details)

Uploaded Python 3

File details

Details for the file rendercv-1.0.tar.gz.

File metadata

  • Download URL: rendercv-1.0.tar.gz
  • Upload date:
  • Size: 43.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for rendercv-1.0.tar.gz
Algorithm Hash digest
SHA256 656c3c459f5cee13f7bd475df639451d7a24eaaf5557e01f379fc027d2ce2d1e
MD5 e33e8f553ac2a2fa27ecef594a8e831a
BLAKE2b-256 bf913ef32c2503b8300f2e003f08cb92e52d40be20f7cecac47e5e0e5048d579

See more details on using hashes here.

File details

Details for the file rendercv-1.0-py3-none-any.whl.

File metadata

  • Download URL: rendercv-1.0-py3-none-any.whl
  • Upload date:
  • Size: 59.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for rendercv-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a990b15d0437876278ba29ade25645613c3a856018eea49b9d9e5459e674ff1b
MD5 085980fe6642e9eee63a61d35d0b0b03
BLAKE2b-256 f6079e3666e9d0af96a120d5f2a6cc7eea83d5f03a476df5da4e677c63bbf69d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page