lif abfe1e1733 feat: add --output-folder option to specify output directory (#578)
* feat: add --output-folder option to specify base output directory

This addresses issue #551 by adding support for customizing the output
folder for all generated files.

Changes:
- Add `output_folder` field to RenderCommand model
- Add `--output-folder` / `-o` CLI option
- When output_folder is set, it replaces the default `rendercv_output`
  folder in all output paths
- Support OUTPUT_FOLDER placeholder for advanced path customization
- Add comprehensive test coverage

Usage examples:
  # Simple: output all files to build/en/
  rendercv render cv.yaml --output-folder build/en/

  # Advanced: use OUTPUT_FOLDER placeholder for custom paths
  rendercv render cv.yaml --output-folder dist/ \
    --pdf-path OUTPUT_FOLDER/final/resume.pdf

Closes #551

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address linting errors and Windows compatibility

- Fix PIE810: use tuple in startswith() call
- Fix ruff format issues
- Make tests cross-platform compatible for Windows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: split compound assertions per PT018 rule

* Improve and update examples and schema

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Sina Atalay <79940989+sinaatalay@users.noreply.github.com>
2026-02-17 00:01:19 +03:00
2026-02-16 19:24:39 +03:00
2025-12-22 17:04:50 +03:00
2025-12-10 18:34:57 +03:00
2025-12-22 18:07:12 +03:00
2024-03-27 19:23:09 +01:00
2025-12-23 16:31:08 +03:00
2026-02-16 03:14:15 +03:00

RenderCV

CV/resume generator for academics and engineers

test coverage docs pypi-version pypi-downloads

Write your CV or resume as YAML, then run RenderCV,

rendercv render John_Doe_CV.yaml

and get a PDF with perfect typography.

With RenderCV, you can:

  • Version-control your CV — it's just text.
  • Focus on content — don't worry about the formatting.
  • Get perfect typography — consistent alignment and spacing, handled for you.

A YAML file like this:

cv:
  name: John Doe
  location: San Francisco, CA
  email: john.doe@email.com
  website: https://rendercv.com/
  social_networks:
    - network: LinkedIn
      username: rendercv
    - network: GitHub
      username: rendercv
  sections:
    Welcome to RenderCV:
      - RenderCV reads a CV written in a YAML file, and generates a PDF with professional typography.
      - See the [documentation](https://docs.rendercv.com) for more details.
    education:
      - institution: Princeton University
        area: Computer Science
        degree: PhD
        date:
        start_date: 2018-09
        end_date: 2023-05
        location: Princeton, NJ
        summary:
        highlights:
          - "Thesis: Efficient Neural Architecture Search for Resource-Constrained Deployment"
          - "Advisor: Prof. Sanjeev Arora"
          - NSF Graduate Research Fellowship, Siebel Scholar (Class of 2022)
    ...

becomes one of these PDFs. Click on the images to preview.

Classic Theme Example of RenderCV Engineeringresumes Theme Example of RenderCV Sb2nov Theme Example of RenderCV
Moderncv Theme Example of RenderCV Engineeringclassic Theme Example of RenderCV Custom themes can be added.

JSON Schema

RenderCV's JSON Schema lets you fill out the YAML interactively, with autocompletion and inline documentation.

JSON Schema of RenderCV

Extensive Design Options

You have full control over every detail.

design:
  theme: classic
  page:
    size: us-letter
    top_margin: 0.7in
    bottom_margin: 0.7in
    left_margin: 0.7in
    right_margin: 0.7in
    show_footer: true
    show_top_note: true
  colors:
    body: rgb(0, 0, 0)
    name: rgb(0, 79, 144)
    headline: rgb(0, 79, 144)
    connections: rgb(0, 79, 144)
    section_titles: rgb(0, 79, 144)
    links: rgb(0, 79, 144)
    footer: rgb(128, 128, 128)
    top_note: rgb(128, 128, 128)
  typography:
    line_spacing: 0.6em
    alignment: justified
    date_and_location_column_alignment: right
    font_family: Source Sans 3
  # ...and much more

Design Options of RenderCV

Tip

Want to set up a live preview environment like the one shown above? See how to set up VS Code for RenderCV.

Strict Validation

No surprises. If something's wrong, you'll know exactly what and where. If it's valid, you get a perfect PDF.

Strict Validation Feature of RenderCV

Any Language

Fill out the locale field for your language.

locale:
  language: english
  last_updated: Last updated in
  month: month
  months: months
  year: year
  years: years
  present: present
  month_abbreviations:
    - Jan
    - Feb
    - Mar
  ...

Get Started

Install RenderCV (Requires Python 3.12+):

pip install "rendercv[full]"

Create a new CV yaml file:

rendercv new "John Doe"

Edit the YAML, then render:

rendercv render "John_Doe_CV.yaml"

For more details, see the user guide.

Description
No description provided
Readme MIT 930 MiB
Languages
Python 82.9%
Typst 16.4%
HTML 0.2%
Dockerfile 0.2%
Just 0.2%