Marcin Konowalczyk bf38e29362 Change bold and italics typst source generation (#303)
* use #emph and #strong instead of underscores and asterisks

* convert remaining asterisks

* templater #strong and #emph

Change templater to use #strong and #emph instead of * and _ respectively.

* update classic test files (no pdf diff)

* update engineeringclassic test files (no pdf diff)

* update sb2nov test files (no pdf diff)

* update engineeringrer test data (minor pdf diff)

engineeringresumes_empty_long_second_row.pdf
0 of 1 pages differ.
engineeringresumes_empty_short_second_row.pdf
0 of 1 pages differ.
engineeringresumes_filled_long_second_row.pdf
13 of 39 pages differ.
engineeringresumes_filled_short_second_row.pdf
14 of 45 pages differ.

The diff is one extra comma which tbh, was probably supposed to be there anyway:

Old: `Bogaziçi University in Mechanical Engineering: - Istanbul, Turkey`
New: `Bogaziçi University, in Mechanical Engineering: - Istanbul, Turkey`

* update moderncv test data (minor pdf diff)

moderncv_empty_long_second_row.pdf
0 of 1 pages differ.
moderncv_empty_short_second_row.pdf
0 of 1 pages differ.
moderncv_filled_long_second_row.pdf
14 of 46 pages differ.
moderncv_filled_short_second_row.pdf
14 of 46 pages differ.

Same diff as for engineeringresumes -- one extra comma which, was probably supposed to be there anyway:

Old: `Bogaziçi University in Mechanical Engineering: - Istanbul, Turkey`
New: `Bogaziçi University, in Mechanical Engineering: - Istanbul, Turkey`

* update markdown_to_typst test

* fix link fixing

* add link fixing test

* update templater.py

* fix a test

* fix a linting error

---------

Co-authored-by: Sina Atalay <dev@atalay.biz>
2025-01-19 19:02:03 -05:00
2025-01-07 01:30:40 +03:00
2025-01-07 14:31:29 +03:00
2025-01-07 14:27:22 +03:00
2025-01-07 01:30:40 +03:00
2025-01-07 01:30:40 +03:00
2024-03-27 19:23:09 +01:00
2025-01-07 01:30:40 +03:00
2025-01-07 14:31:29 +03:00
2025-01-07 14:27:29 +03:00

RenderCV

The engine of the RenderCV App

test coverage docs pypi-version pypi-downloads

RenderCV engine is a Typst-based Python package with a command-line interface (CLI) that allows you to version-control your CV/resume as source code. It reads a CV written in a YAML file with Markdown syntax, converts it into a Typst code, and generates a PDF.

RenderCV engine's focus is to provide these three features:

  • Content-first approach: Users should be able to focus on the content instead of worrying about the formatting.
  • A mechanism to version-control a CV's content and design separately: The content and design of a CV are separate issues and they should be treated separately.
  • Robustness: A PDF should be delivered if there aren't any errors. If errors exist, they should be clearly explained along with solutions.

It takes a YAML file that looks like this:

cv:
  name: John Doe
  location: Location
  email: john.doe@example.com
  phone: tel:+1-609-999-9995
  social_networks:
    - network: LinkedIn
      username: john.doe
    - network: GitHub
      username: john.doe
  sections:
    welcome_to_RenderCV!:
      - '[RenderCV](https://rendercv.com) is a Typst-based CV
        framework designed for academics and engineers, with Markdown
        syntax support.'
      - Each section title is arbitrary. Each section contains
        a list of entries, and there are 7 different entry types
        to choose from.
    education:
      - institution: Stanford University
        area: Computer Science
        degree: PhD
        location: Stanford, CA, USA
        start_date: 2023-09
        end_date: present
        highlights:
          - Working on the optimization of autonomous vehicles
            in urban environments
    ...

Then, it produces one of these PDFs with its corresponding Typst file, Markdown file, HTML file, and images as PNGs. Click on the images below to preview PDF files.

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

RenderCV comes with a JSON Schema so that the YAML input file can be filled out interactively.

JSON Schema of RenderCV

Getting Started

RenderCV engine is very easy to install (pip install "rendercv[full]") and easy to use (rendercv new "John Doe"). Follow the user guide to get started.

Motivation

We are developing a purpose-built app for writing CVs and resumes that will be available on mobile and web. This Python project is the foundation of that app. Check out our blog post to learn more about why one would use such an app.

Contributing

All contributions to RenderCV are welcome! To get started, please read the developer guide.

Description
No description provided
Readme MIT 862 MiB
Languages
Python 97.9%
Typst 1.1%
HTML 0.4%
Dockerfile 0.3%
Just 0.3%