diff --git a/docs/images/EducationEntry.png b/docs/images/EducationEntry.png new file mode 100644 index 0000000..6e60bbe Binary files /dev/null and b/docs/images/EducationEntry.png differ diff --git a/docs/images/ExperienceEntry.png b/docs/images/ExperienceEntry.png new file mode 100644 index 0000000..eb221bd Binary files /dev/null and b/docs/images/ExperienceEntry.png differ diff --git a/docs/images/NormalEntry.png b/docs/images/NormalEntry.png new file mode 100644 index 0000000..20b7cfc Binary files /dev/null and b/docs/images/NormalEntry.png differ diff --git a/docs/images/OneLineEntry.png b/docs/images/OneLineEntry.png new file mode 100644 index 0000000..5b07d72 Binary files /dev/null and b/docs/images/OneLineEntry.png differ diff --git a/docs/images/PublicationEntry.png b/docs/images/PublicationEntry.png new file mode 100644 index 0000000..12a3c08 Binary files /dev/null and b/docs/images/PublicationEntry.png differ diff --git a/docs/user_guide.md b/docs/user_guide.md index e69de29..ec98e8b 100644 --- a/docs/user_guide.md +++ b/docs/user_guide.md @@ -0,0 +1,215 @@ +# RenderCV: User Guide + +After you've installed RenderCV with + +```bash +pip install rendercv +``` + +you can start rendering your CV. + +Firstly, go to the directory where you want your CV files located and run: + +```bash +rendercv new "Your Full Name" +``` + +This will create a YAML input file for RenderCV called `Your_Name_CV.yaml`. Open this generated file in your favorite IDE and start editing. It governs all the features of RenderCV. + +!!! tip + + 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`. + + === "Other" + + 1. Ensure your editor of choice has support for YAML schema validation. + 2. Add the following line at the top of `Your_Name_CV.yaml`: + + ``` yaml + # yaml-language-server: $schema=https://github.com/sinaatalay/rendercv/blob/main/schema.json?raw=true + ``` + +After you're done editing your input file, run the command below to render your CV: +```bash +rendercv render Your_Name_CV.yaml +``` + +## Entry Types + +There are five entry types in RenderCV: + +1. *EducationEntry* +2. *ExperienceEntry* +3. *NormalEntry* +4. *OneLineEntry* +5. *PublicationEntry* + +The whole CV consists of these entries. The table below shows what sections of the input file use which entry type. + +| YAML section | Entry Type | +| ------------------------------ | -------------------------------- | +| `education` | *EducationEntry* | +| `work_experience` | *ExperienceEntry* | +| `academic_projects` | *NormalEntry* | +| `publications` | *PublicationEntry* | +| `certificates` | *NormalEntry* | +| `skills` | *OneLineEntry* | +| `test_scores` | *OneLineEntry* | +| `personal_projects` | *NormalEntry* | +| `extracurricular_activities` | *ExperienceEntry* | +| `custom_sections` | **They can be any of the five!** | + +!!! info + Note that *EducationEntry* is not necessarily for education entries only. It's one of the five entry designs that RenderCV offers, and it could be used for anything (see [custom sections](http://user_guide.md#custom_sections)). *EducationEntry* just happens to be its name. The same goes for other entries, too. + +### *EducationEntry* + +```yaml +institution: Boğaziçi University +url: https://boun.edu.tr +area: Mechanical Engineering +study_type: BS +location: Istanbul, Turkey +start_date: "2017-09-01" +end_date: "2023-01-01" +transcript_url: https://example.com +gpa: 3.10/4.00 +highlights: +- "Class rank: 10 of 62" + +``` + +which renders into + +![EducationEntry](images/EducationEntry.png) + +### *ExperienceEntry* + +```yaml +company: AmIACompany +position: Summer Intern +location: Istanbul, Turkey +url: https://example.com +start_date: "2022-06-15" +end_date: "2022-08-01" +highlights: +- AmIACompany is a technology company that provides web-based engineering + applications that enable the simulation and optimization of products and + manufacturing tools. +- Modeled and simulated a metal-forming process deep drawing using finite element + analysis with open-source software called CalculiX. +``` + +which renders into + +![ExperienceEntry](images/ExperienceEntry.png) + +### *NormalEntry* + +```yaml +name: Design and Construction of a Dynamometer +location: Istanbul, Turkey +date: Fall 2022 +highlights: +- Designed and constructed a controllable dynamometer that measures an electric + motor's torque and power output at different speeds for my senior design project. +url: https://example.com + +``` + +which renders into + +![NormalEntry](images/NormalEntry.png) + +### *OneLineEntry* +```yaml +name: Programming +details: C++, C, Python, JavaScript, MATLAB, Lua, LaTeX +``` + +which renders into + +![OneLineEntry](images/OneLineEntry.png) + +### *PublicationEntry* + +```yaml +title: Phononic band gaps induced by inertial amplification in periodic media +authors: +- Author 1 +- John Doe +- Author 3 +journal: Physical Review B +doi: 10.1103/PhysRevB.76.054309 +date: "2007-08-01" +cited_by: 243 +``` + +which renders into + +![PublicationEntry](images/PublicationEntry.png) + + +## Custom Sections + +Custom sections with custom titles can be created. Each custom section will be an object that looks like this: + +```yaml +title: My Custom Section +entry_type: OneLineEntry +entries: +- name: Testing custom sections + details: Wohooo! +- name: This is a + details: OneLineEntry! +``` + +And `custom_sections` part of the data model will be a list of customs section objects that look like this: +```yaml +custom_sections: +- title: My Custom Section + entry_type: OneLineEntry + entries: + - name: Testing custom sections + details: Wohooo! + - name: This is a + details: OneLineEntry! +- title: My Other Custom Section + entry_type: EducationEntry + entries: + - institution: Hop! + area: Hop! + study_type: HA + highlights: + - "There are only five types of entries: *EducationEntry*, *ExperienceEntry*, + *NormalEntry*, *OneLineEntry*, and *PublicationEntry*." + - This is an EducationEntry! + start_date: "2022-06-15" + end_date: "2022-08-01" +``` + +Each custom section needs to have an entry type, and entries should be adjusted according to the entry type selection. + +!!! note + + Some entry types use links, and all the links have a text placeholder. That placeholder can be changed with `link_text` setting as shown below: + ```yaml + title: My Third Custom Section + entry_type: ExperienceEntry + link_text: My Link Text + entries: + - company: Hop! + position: Hop! + date: My Date + location: My Location + url: https://example.com + highlights: + - I think this is really working. This is an *ExperienceEntry*! + ``` + + diff --git a/mkdocs.yaml b/mkdocs.yaml index c875d85..93ac025 100644 --- a/mkdocs.yaml +++ b/mkdocs.yaml @@ -60,9 +60,12 @@ markdown_extensions: pygments_lang_class: true - pymdownx.inlinehilite - pymdownx.superfences + - pymdownx.tabbed: # content tabs + alternate_style: true - toc: permalink: true title: Page contents + - admonition # blocks like note, warning, tip, etc. plugins: - search