This Linux tool is designed to provide an ability to create long single page CVs in pdf format. It uses HTML/CSS & Jinja2 to create documents layout. CV data is stored in YAML files. HTML/CSS to PDF conversion is done by wkhtmltopdf tool. Additionally, the tool utilizes SCSS&Autoprefixer to avoid problems with unsupported CSS properties because wkhtmltopdf uses a fairly old version of WebKit to render web pages to PDF files.
- Docker
- Make
- Get Docker
- Git clone or download the project.
- CD to the project root directory
- Run
make build
and wait until the image is built.
- Put your CV data into the
cv/data
directory. You can find an example of the data structure for a particular template incv/templates/<template_name>/data-example.yml
file. - Put your photo if you need it into
cv/data/photo
directory - Run
make run
- Run
compose <filename without extension> --width <width in cm> --height <height in cm> --template <template folder name>
. - Your CV will be stored in
cv/out
directory - ???
- PROFIT!!!
You can contribute by any means. The preferable way is the creation of new CV templates. Take the default template as an example.
- Create a new directory under
cv/templates
directory. In the end path to it should look likecv/templates/<template_name>
where template_name is a name you chose for your template. - Inside template directory create two files
index.html
andindex.scss
. These two will be SCSS and HTML templates entries which composer will use to create HTML/CSS template of your CV. - Create
loc/en.yml
file. This file should contain default localization. - Create
dataparser.py
. This file should contain function which will receive a loaded data and return it back after all required modifications are done. - Create
data-example.yml
. This file should contain an example of data for your CV template. - ???
- PROFIT!!! Now you can start the creation of your beautiful CV template. And if you feel generous and opensourcy share a template with a community.
# special key which will be replaced by link to your photo
photo: yourphotofilename.png
# special key which will be replaced by corresponding localization data
loc: en
# do not use special keys for CV data
def parse(data:dict) -> dict:
"""
Here you can do anything with CV data.
Args:
data: CV data in dict format
Returns:
Modified CV data.
"""
return data