`qcv` is a tool to generate HTML resume from JSON template. ![img](https://travis-ci.com/SergChr/qcv.svg?token=2R5NQSKq8dFxzneyxJie&branch=master) ## Content - [Use cases](#use-cases) - [How does it work](#how-does-it-work) - [List of the available themes](/src/assets/themes/README.md) - [Custom HTML themes](#custom-html-themes) - **[How to install](#installing)** ## Use cases #### Keeping a JSON resume in Git The tool allows to have one JSON file where the resume information placed. It can be stored in a `git` repository to make the updating process more seamless. There could be branching applied for different versions; the diffs are more simpler to track. No more `CV_1.pdf`, `CV_1_updated.pdf`, `CV_1_updated_for_facebook.pdf`. #### Controlling and keeping track of the information No need to move between different services that generate a resume or/and store it. #### Generating a simple portfolio website The tool generates a HTML file based on a HTML template that can be customized. ## How does it work The tool replaces variables in a HTML template (see `src/assets/themes`) with corresponding values in the JSON template. Example: This is a HTML template ```html
{{basics.name}}
``` The JSON template is ```json { "basics": { "name": "John Doe" } } ``` So the result will be as follows: ```html
John Doe
``` #### Formatting rules ##### cv.json This is the JSON template example below. It will be generated by the `init` command. It creates `cv.json` file with the similar content: ```json { "basics": { "name": "John Doe", "label": "Programmer", "email": "john@gmail.com", "phone": "(912) 555-4321", "website": "http://johndoe.com", "summary": "A brief summary on who I am", "location": { "country": "The Johnited States Of Doe", "address": "2712 Broadway St", "city": "San Francisco" }, "profiles": [{ "network": "Twitter", "username": "john", "url": "http://twitter.com/john" }] }, "work": [{ "company": "Company", "position": "President", "website": "http://company.com", "start_date": "2013-01-01", "end_date": "2014-01-01", "summary": "Description..." }], "projects": [{ "name": "An app to track time", "description": "A web and mobile application that allowed 2500 people to track their working time" }], "education": [{ "institution": "University", "area": "Software Development", "study_type": "Bachelor", "start_date": "2011-01-01", "end_date": "2013-01-01", "courses": [ "DB1101 - Basic SQL" ], "location": "Washington DC, US" }], "skills": [{ "name": "Web Development" }], "languages": [{ "language": "English", "level": "Native speaker" }] } ``` Put your information into this file. Then use the `build simple` command to generate the `cv.html` output. ## Available themes See [themes documentation](/src/assets/themes/README.md) ## Custom HTML themes There is an ability to build your custom HTML template and generate a resume from it. Example: ```sh $ qcv build-from my_theme.html ``` #### Formatting rules for the HTML templates _As a reference, you could use "simple" theme (`src/assets/themes/simple/index.html`)._ ##### Primitive/simple values A value inside `{{ root_key }}` in a HTML template looks up for a key `root_key` in the `cv.json` file and replaces `{{ root_key }}` with the corresponding value. Nested keys should be written as `{{ root.nested.more_nested }}`. Say, we have the following `cv.json`: ```json { "basics": { "name": "John Doe", "label": "Programmer", }, } ``` A theme could be: ```html

{{ basics.name }}

{{basics.label}}

``` CSS styles could be inside `