Skip to content

RenderCV

RenderCV is a $\LaTeX$ CV/resume framework that allows you to create a high-quality CV as a PDF from a YAML file with Markdown syntax support and complete control over the $\LaTeX$ code.

In this section, you can find how RenderCV's components are structured and how they interact with each other. The flowchart below illustrates the general operations of RenderCV.

flowchart TD
    subgraph rendercv.data
    A[YAML Input File] --parsing with ruamel.yaml package--> B(Python Dictionary)
    B --validation with pydantic package--> C((Pydantic Object))
    end
    subgraph rendercv.themes
    C --> AA[(Jinja2 Templates)]
    end
    AA --> D
    AA --> E
    subgraph rendercv.renderer
    E[Markdown File] --markdown package--> K[HTML FIle]
    D[LaTeX File] --TinyTeX--> L[PDF File]
    L --PyMuPDF package--> Z[PNG Files]
    end
  • cli package contains the command-line interface (CLI) related code for RenderCV.
    • commands.py module contains the CLI commands.
    • printer.py module contains the functions and classes that are used to print nice-looking messages to the terminal.
    • utilities.py module contains utility functions that are required by the CLI.
  • data package contains classes and functions to parse and validate a YAML input file.
    • models package contains the Pydantic data models, validators, and computed fields that are used in RenderCV.
      • computers.py module contains functions that compute some properties based on the input data.
      • base.py module contains the base data model for the other data models.
      • entry_types.py module contains the data models of the available entry types in RenderCV.
      • curriculum_vitae.py module contains the data model of the cv field of the input file.
      • design.py module contains the data model of the design field of the input file.
      • locale_catalog.py module contains the data model of the locale_catalog field of the input file.
      • rendercv_data_model.py module contains the RenderCVDataModel data model, which is the main data model that defines the whole input file structure.
    • generator.py module contains the functions for generating the JSON Schema of the input data format and a sample YAML input file.
    • reader.py module contains the functions that are used to read the input files.
  • renderer package contains the necessary classes and functions for generating the output files from the RenderCVDataModel object.
    • renderer.py module contains the necessary functions for rendering $\LaTeX$, PDF, Markdown, HTML, and PNG files from the data model.
    • templater.py module contains the necessary classes and functions for templating the $\LaTeX$ and Markdown files from the data model. object.
  • themes package contains the built-in themes of RenderCV.
    • common_options.py module contains some standard data models for design options.
    • classic package contains the classic theme templates and data models for its design options.
    • engineeringresumes package contains the engineeringresumes theme templates and data models for its design options.
    • sb2nov package contains the sb2nov theme templates and data models for its design options.
    • moderncv package contains the moderncv theme templates and data models for its design options.