docs: update figures and examples

This commit is contained in:
Sina Atalay 2024-04-07 17:44:07 +00:00 committed by GitHub
parent d4a5ca784d
commit ef3601c00f
30 changed files with 289 additions and 134 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 350 KiB

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

After

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View File

@ -1,129 +1,129 @@
# RenderCV # RenderCV
[![test](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml) [![test](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml/badge.svg?branch=main)](https://github.com/sinaatalay/rendercv/actions/workflows/test.yaml)
[![coverage](https://coverage-badge.samuelcolvin.workers.dev/sinaatalay/rendercv.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/sinaatalay/rendercv) [![coverage](https://coverage-badge.samuelcolvin.workers.dev/sinaatalay/rendercv.svg)](https://coverage-badge.samuelcolvin.workers.dev/redirect/sinaatalay/rendercv)
[![pypi-version](https://img.shields.io/pypi/v/rendercv?label=PyPI%20version&color=rgb(0%2C79%2C144))](https://pypi.python.org/pypi/rendercv) [![pypi-version](https://img.shields.io/pypi/v/rendercv?label=PyPI%20version&color=rgb(0%2C79%2C144))](https://pypi.python.org/pypi/rendercv)
[![pypi-downloads](https://img.shields.io/pepy/dt/rendercv?label=PyPI%20downloads&color=rgb(0%2C%2079%2C%20144))](https://pypistats.org/packages/rendercv) [![pypi-downloads](https://img.shields.io/pepy/dt/rendercv?label=PyPI%20downloads&color=rgb(0%2C%2079%2C%20144))](https://pypistats.org/packages/rendercv)
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. If you want to see RenderCV in action, you can check out [this YouTube video](https://youtu.be/0aXEArrN-_c?feature=shared). 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. If you want to see RenderCV in action, you can check out [this YouTube video](https://youtu.be/0aXEArrN-_c?feature=shared).
It takes a YAML file that looks like this: It takes a YAML file that looks like this:
```yaml ```yaml
cv: cv:
name: John Doe name: John Doe
location: Your Location location: Your Location
email: youremail@yourdomain.com email: youremail@yourdomain.com
phone: tel:+90-541-999-99-99 phone: tel:+90-541-999-99-99
website: https://yourwebsite.com/ website: https://yourwebsite.com/
social_networks: social_networks:
- network: LinkedIn - network: LinkedIn
username: yourusername username: yourusername
- network: GitHub - network: GitHub
username: yourusername username: yourusername
sections: sections:
summary: summary:
- This is an example resume to showcase the capabilities - This is an example resume to showcase the capabilities
of the open-source LaTeX CV generator, [RenderCV](https://github.com/sinaatalay/rendercv). 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), 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 where a *clean and tidy CV* pattern is proposed by **Gayle
L. McDowell**. L. McDowell**.
education: education:
- start_date: 2000-09 - start_date: 2000-09
end_date: 2005-05 end_date: 2005-05
highlights: highlights:
- 'GPA: 3.9/4.0 ([Transcript](https://example.com))' - 'GPA: 3.9/4.0 ([Transcript](https://example.com))'
- '**Coursework:** Software Foundations, Computer Architecture, - '**Coursework:** Software Foundations, Computer Architecture,
Algorithms, Artificial Intelligence, Comparison of Algorithms, Artificial Intelligence, Comparison of
Learning Algorithms, Computational Theory.' Learning Algorithms, Computational Theory.'
institution: University of Pennsylvania institution: University of Pennsylvania
area: Computer Science area: Computer Science
degree: BS degree: BS
experience: experience:
... ...
``` ```
And then produces these PDFs and their $\LaTeX$ code (click on images to preview PDFs): And then produces these PDFs and their $\LaTeX$ code (click on images to preview PDFs):
| `classic` theme | `sb2nov` theme | `moderncv` theme | | `classic` theme | `sb2nov` theme | `moderncv` theme |
|:---------------:|----------------|------------------| |:---------------:|----------------|------------------|
|[![Classic Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/classic.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ClassicTheme_CV.pdf)|[![Sb2nov Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/sb2nov.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_Sb2novTheme_CV.pdf)|[![Moderncv Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/moderncv.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ModerncvTheme_CV.pdf)| |[![Classic Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/classic.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ClassicTheme_CV.pdf)|[![Sb2nov Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/sb2nov.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_Sb2novTheme_CV.pdf)|[![Moderncv Theme Example of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/moderncv.png)](https://raw.githubusercontent.com/sinaatalay/rendercv/main/examples/John_Doe_ModerncvTheme_CV.pdf)|
It also generates an HTML file so that the content can be pasted into Grammarly for spell-checking: It also generates an HTML file so that the content can be pasted into Grammarly for spell-checking:
![Grammarly for RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/grammarly.gif) ![Grammarly for RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/grammarly.gif)
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: 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](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/cli.gif) ![CLI of RenderCV](https://raw.githubusercontent.com/sinaatalay/rendercv/main/docs/assets/images/cli.gif)
## Quick Start Guide ## Quick Start Guide
> RenderCV doesn't require a $\LaTeX$ installation; it comes with it! > RenderCV doesn't require a $\LaTeX$ installation; it comes with it!
1. Install [Python](https://www.python.org/downloads/) (3.10 or newer). 1. Install [Python](https://www.python.org/downloads/) (3.10 or newer).
2. Run the command below to install RenderCV. 2. Run the command below to install RenderCV.
```bash ```bash
pip install rendercv pip install rendercv
``` ```
3. Run the command below to generate a starting input file (`Full_Name_CV.yaml`). 3. Run the command below to generate a starting input file (`Full_Name_CV.yaml`).
```bash ```bash
rendercv new "Full Name" 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*). 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. 5. Run the command below to generate your $\LaTeX$ CV.
```bash ```bash
rendercv render Full_Name_CV.yaml 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](https://sinaatalay.github.io/rendercv/user_guide). You can find a comprehensive user guide that covers the data model (YAML structure) and adding custom themes in greater detail [here](https://sinaatalay.github.io/rendercv/user_guide).
## Motivation ## 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. 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. 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: 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! ### Why should I bother using RenderCV instead of $\LaTeX$? I can version-control $\LaTeX$ code too!
Because: 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. - 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. - 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. - 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. - 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. - 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? ### 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. 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. 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? ### 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. 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 ## 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. 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](https://sinaatalay.github.io/rendercv/user_guide). A detailed user guide can be found [here](https://sinaatalay.github.io/rendercv/user_guide).
Reference to the code can be found [here](https://sinaatalay.github.io/rendercv/reference). Reference to the code can be found [here](https://sinaatalay.github.io/rendercv/reference).
The changelog can be found [here](https://sinaatalay.github.io/rendercv/changelog). The changelog can be found [here](https://sinaatalay.github.io/rendercv/changelog).
## Contributing ## 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: All contributions to RenderCV are welcome! For development, you will need to clone the repository recursively, as TinyTeX is being used as a submodule:
```bash ```bash
git clone --recursive https://github.com/sinaatalay/rendercv.git git clone --recursive https://github.com/sinaatalay/rendercv.git
``` ```
All code and development tool specifications are in `pyproject.toml`. All code and development tool specifications are in `pyproject.toml`.

View File

@ -168,12 +168,12 @@ def generate_entry_figures():
"""Generate an image for each entry type and theme.""" """Generate an image for each entry type and theme."""
# Generate PDF figures for each entry type and theme # Generate PDF figures for each entry type and theme
entries = { entries = {
# "education_entry": dm.EducationEntry(**education_entry), "education_entry": dm.EducationEntry(**education_entry),
# "experience_entry": dm.ExperienceEntry(**experience_entry), "experience_entry": dm.ExperienceEntry(**experience_entry),
# "normal_entry": dm.NormalEntry(**normal_entry), "normal_entry": dm.NormalEntry(**normal_entry),
# "publication_entry": dm.PublicationEntry(**publication_entry), "publication_entry": dm.PublicationEntry(**publication_entry),
# "one_line_entry": dm.OneLineEntry(**one_line_entry), "one_line_entry": dm.OneLineEntry(**one_line_entry),
# "text_entry": f"{text_entry}", "text_entry": f"{text_entry}",
"bullet_entry": dm.BulletEntry(**bullet_entry), "bullet_entry": dm.BulletEntry(**bullet_entry),
} }
themes = dm.available_themes themes = dm.available_themes

View File

@ -134,6 +134,13 @@ design:
section_title: section_title:
top: 0.3 cm top: 0.3 cm
bottom: 0.2 cm bottom: 0.2 cm
entry_area:
left_and_right: 0 cm
vertical_between: 0.1 cm
highlights_area:
top: 0.10 cm
left: 0 cm
vertical_between_bullet_points: 0.10 cm
header: header:
vertical_between_name_and_connections: 0.3 cm vertical_between_name_and_connections: 0.3 cm
bottom: 0.3 cm bottom: 0.3 cm

Binary file not shown.

View File

@ -0,0 +1,148 @@
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:
- institution: University of Pennsylvania
area: Computer Science
degree: BS
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.'
experience:
- company: Apple Computer
position: Software Engineer, Intern
location: CA, USA
start_date: 2004-06
end_date: 2004-08
highlights:
- Reduced time to render the user's buddy list by 75% by implementing a
prediction algorithm.
- Implemented iChat integration with OS X Spotlight Search by creating a
tool that extracts metadata from saved chat transcripts and provides metadata
to a system-wide search database.
- Redesigned chat file format and implemented backward compatibility for
search.
- company: Microsoft Corporation
position: Lead Student Ambassador
location: WA, USA
start_date: 2003-09
end_date: 2005-04
highlights:
- Promoted to Lead Student Ambassador in the Fall of 2004, supervised 10
- 15 Student Ambassadors.
- 'Created and taught a computer science course, CSE 099: Software Design
and Development.'
- company: University of Pennsylvania
position: Head Teaching Assistant
location: PA, USA
start_date: 2001-10
end_date: 2005-05
highlights:
- Implemented a user interface for the VS open file switcher (ctrl-tab)
and extended it to tool windows.
- Created a service to provide gradient across VS and VS add-ins. Optimized
service via caching.
- Programmer Productivity Research Center (Summers 2001, 2002)
- 'Built app to compute the similarity of all methods in a code base, reduced
time from $\mathcal{O}(n^2)$ to $\mathcal{O}(n \log n)$. '
- Created a test case generation tool that creates random XML docs from
XML Schema.
- company: Microsoft Corporation
position: Software Design Engineer, Intern
location: WA, USA
start_date: 2003-06
end_date: 2003-08
highlights:
- Promoted to Lead Student Ambassador in the Fall of 2004, supervised 10
- 15 Student Ambassadors.
publications:
- title: Magneto-Thermal Thin Shell Approximation for 3D Finite Element Analysis
of No-Insulation Coils
authors:
- Albert Smith
- John Doe
- Jane Derry
- Harry Tom
- Anotherfirstname Andsurname
doi: 10.1109/TASC.2023.3340648
date: 2004-01
projects:
- name: Multi-User Drawing Tool
date: '2004'
highlights:
- Developed an electronic classroom where multiple users can view and simultaneously
draw on a "chalkboard" with each person's edits synchronized.
- Used C++ and MFC.
- name: Synchronized Calendar
start_date: 2003
end_date: 2004
highlights:
- Developed a desktop calendar with globally shared and synchronized calendars,
allowing users to schedule meetings with other users.
- Used C#.NET, SQL, and XML.
- name: Operating System
date: '2002'
highlights:
- Developed a UNIX-style OS with a scheduler, file system, text editor,
and calculator.
- Used C.
additional_experience_and_awards:
- label: Instructor (2003 - 2005)
details: Taught two full-credit Computer Science courses.
- label: Third Prize, Senior Design Projects
details: Awarded 3rd prize for a synchronized calendar project out of 100
projects.
technologies:
- label: Languages
details: C++, C, Java, Objective-C, C#.NET, SQL, JavaScript
- label: Software
details: Visual Studio, Microsoft SQL Server, Eclipse, XCode, Interface Builder
design:
theme: sb2nov
font_size: 10pt
page_size: letterpaper
color: '#004f90'
disable_page_numbering: false
page_numbering_style: NAME - Page PAGE_NUMBER of TOTAL_PAGES
show_last_updated_date: true
header_font_size: 24 pt
text_alignment: justified
margins:
page:
top: 2 cm
bottom: 2 cm
left: 2 cm
right: 2 cm
section_title:
top: 0.3 cm
bottom: 0.2 cm
entry_area:
left_and_right: 0.2 cm
vertical_between: 0.2 cm
date_and_location_width: 4.1 cm
highlights_area:
top: 0.10 cm
left: 0.4 cm
vertical_between_bullet_points: 0.10 cm
header:
vertical_between_name_and_connections: 0.3 cm
bottom: 0.3 cm
horizontal_between_connections: 0.5 cm