- The `cv` field is mandatory. It contains the **content of the CV**.
- The `design` field is optional. It contains the **design options of the CV**. If you don't provide a `design` field, RenderCV will use the default design options with the `classic` theme.
- The `locale_catalog` field is optional. You can provide translations for some of the strings used in the CV, for example, month abbreviations. RenderCV will use English strings if you don't provide a `locale_catalog` field.
To maximize your productivity while editing the input YAML file, set up RenderCV's JSON Schema in your IDE. It will validate your inputs on the fly and give auto-complete suggestions.
=== "Visual Studio Code"
1. Install [YAML language support](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) extension.
2. Then the Schema will be automatically set up because the file ends with `_CV.yaml`.
3. Press `Ctrl + Space` to see the auto-complete suggestions.
=== "Other"
1. Ensure your editor of choice has support for JSON Schema.
2. Add the following line at the top of `Your_Name_CV.yaml`:
None of the values above are required. You can omit any or all of them, and RenderCV will adapt to your input. These generic fields are used in the header of the CV.
The main content of your CV is stored in a field called `sections`.
The `cv.sections` field is a dictionary where the keys are the section titles, and the values are lists. Each item of the list is an entry for that section.
- This is another TextEntry under the same section.
- This is another another TextEntry under the same section.
this_is_another_section_title:
- company: This time it's an ExperienceEntry.
position: Your position
start_date: 2019-01-01
end_date: 2020-01
location: TX, USA
highlights:
- This is a highlight (bullet point).
- This is another highlight.
- company: Another ExperienceEntry.
position: Your position
start_date: 2019-01-01
end_date: 2020-01-10
location: TX, USA
highlights:
- This is a highlight (bullet point).
- This is another highlight.
```
There are seven different entry types in RenderCV. Different types of entries cannot be mixed under the same section, so for each section, you can only use one type of entry.
The available entry types are: [`EducationEntry`](#education-entry), [`ExperienceEntry`](#experience-entry), [`PublicationEntry`](#publication-entry), [`NormalEntry`](#normal-entry), [`OneLineEntry`](#one-line-entry), [`BulletEntry`](#bullet-entry) and [`TextEntry`](#text-entry).
Each entry type is a different object (a dictionary). Below, you can find all the entry types along with their optional/mandatory fields and how they appear in each built-in theme.
{% for entry_name, entry in showcase_entries.items() %}
The `cv` field of the input contains your content, and the `design` field contains your design options. The `design` field starts with a theme name. Currently, the available themes are: {{available_themes}}. However, custom themes can also be used (see [here](index.md#creating-custom-themes-with-the-create-theme-command).)
Each theme may have different options for design. `classic`, `sb2nov`, and `engineeringresumes` almost use identical options, but `moderncv` is slightly different. Please use an IDE that supports JSON schema to avoid missing any available options for the theme (see [above](#structure-of-the-yaml-input-file)).
This field is what makes RenderCV a multilingual tool. RenderCV uses some English strings to render PDFs. For example, it takes the dates in ISO format (`2020-01-01`) and converts them into human-friendly strings (`"Jan. 2020"`). However, you can override these strings for your own language or needs with the `locale_catalog` field.