Build a crisp CV (resume), as printable HTML, from JSON.
Project description
About pcv
Pcv creates a printable curriculum vitae (resume) in HTML format, based on data stored in JSON.
The basic idea is to use JSON to store all data related to you resume, then use a settings file to tailor the displayed data to a specific job-application.
History
The original intention was to create just any kind of mini-framework, from scratch (except for the template language), in order to gain some insight into framework architecture in general. The specific choice to focus on resume creation was just convenient at the time.
Status
The project is still in the early stages of development, so it is not production-ready.
There are many similar projects out there that are much more complete.
Dependencies
Although we aim for a minimum number of external dependencies, we cannot do without jinja2
.
YAML would be easier to write than JSON, but we don't want the extra dependency required (e.g. PyYAML).
Instead of using another external dependency to handle PDF creation (e.g. ReportLab or PyQT), we use CSS print styles so we can print to PDF using the browser. This is not the most convenient, but it works in most cases.
Installation
Installation from pypi, using pipenv:
pipenv install pcv
An alternative would be local installation using e.g. pipenv:
Either install into site packages using
pipenv install <path to pcv-x.y.z.tar.gz>
or install as an editable dependency, using
pipenv install -e <path to pcv/setup.py>
Quick start
To start a new pcv
project in the current folder, run the following from the command line:
python -m pcv.start
This will create the following directory structure:
.
├─ dist
├─ source
│ ├─ static
│ ├─ templates
│ └─ cv_template.json
├─ settings.py
└─ makecv.py
The quickest way to get started is to fill out the cv_template.json
file with your details.
When cv_template.json
is ready, call makecv.py
:
python makecv.py
This will create your resume, as an HTML file, in the dist
folder.
Whenever you make a change to your JSON or settings, run makecv.py
again.
Settings
High level configuration of your resume can be accomplished using the settings.py
file.
This file specifies the following constants:
FILENAME
Name of the output file that will be written to the dist
folder.
Default: 'cv.html'
JSON_FILES
List of JSON source files. These are combined into a single python dictionary.
Default: ['cv_template.json']
TEMPLATE_FOLDERS
List of names for folder that contain custom templates (relative to the project's source
folder).
Default: []
PAGES
List of page templates to include.
Default page templates can be found in the pcv source: pcv/templates/pages
Default: ['onepage.html', 'technologies.html', 'publications.html']
STYLES
List of CSS stylesheets to include.
Default stylesheets can be found in the pcv source: pcv/templates/styles
Default: ['style_pages.css', 'style_zero.css']
THEME_COLOR
Main theme color.
Default: '#438496'
THEME_FONT_COLOR
Main font color.
Default: 'white'
SECTIONS
Dictionary with section-specific settings. This dictionary specifies content filter levels, as follows:
{
<section name>: {
'level': <minimum level>,
'priority': <minimum priority>,
'exclude': [<item to exclude>, ...],
'source': <name of source section>
},
...
}
The section specification keys level
, priority
, exclude
, and source
are all optional.
Default section templates can be found in the pcv source: pcv/templates/sections
Default:
dict(technologies=dict(level=2, priority=2, exclude=[]),
skills=dict(level=3, priority=1, source='technologies'))
Custom templates
Overriding default templates
It is possible to override any of the jinja2
templates in the source pcv/templates
subdirectories.
To do so, copy the template to your project's source/templates
folder, and place it in an appropriate subfolder, e.g. pages
or sections
.
For example, we can override the default onepage.html
page by copying the file into our project's source folder: source/templates/pages/onepage.html
(TODO: actually this does not work yet)
Custom pages
todo
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pcv-0.0.2.tar.gz
.
File metadata
- Download URL: pcv-0.0.2.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 254dac92e3e323d16297170cbc16453964ad5c36b5bc79d22c5f53a20e1996c1 |
|
MD5 | f428af414e25402fa02a81cb5bc8b725 |
|
BLAKE2b-256 | 5c119e3c7e73103ded7b807a0d279e98a7235b7a8d31c670c235c7249dc10b11 |
File details
Details for the file pcv-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: pcv-0.0.2-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.2 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 344da1bb545b0a41308447ab4998803f4a88999a8f4fcdd5e7ca16d43929e653 |
|
MD5 | 7041f707fad513df179d729661e61133 |
|
BLAKE2b-256 | 33df91fece03e91775bd8121dc25358de2bf85b5941c97902278492ca2029fb5 |