Skip to main content

An easy to use personal site generator

Project description

ezcv logo

Downloads DeepSource


A python-based static site generator for setting up a CV/Resume site

Table of Contents

What does ezcv do?

ezcv is a purpose built static site generator for creating personal resume/portfolio/cv sites

Features & Roadmap

  • A large collection of built in themes
  • Flexible templating with Jinja2
  • Fully customizable configuration files and sections
  • Simple markdown syntax for content building

Why should I use ezcv?

ezcv is a great choice if:

  • You are fond of one of the built in themes
  • You want a free and open source static site generator
  • If you want a simple to use static site generator based on Jinja
  • If you are familiar with markdown and yaml, and want a system that can be extended
  • You are not familiar with static site generators and want a simple one to try out
  • You want a static site generator with a built in github pages deploy pipeline

ezcv is not a great choice if:

  • You want a widely used industry solution (something like hugo or jekyl would be better for this)
  • You need low level access to the API for complicated extensions that are not possible within jinja
  • You are not familiar with markdown, yaml and jinja and want a frontend to edit your site with ( netlify, squarespace or wix would be better for this)

Who is ezcv for?

  • People who are not necessarily familiar with coding, let alone web development
  • People who are familiar with web development and want a very simple to use static site generator
  • People who are familiar with web development but don't want to bother writing pure html for their site


Here's everything you need to know to get started with ezcv.

No-code/remote setup

Note that there is an option to develop a site completely on your browser without needing to install anything or know how to use git. For details on setting this up, please visit


To use ezcv you will need python 3.6+ (earlier versions wont work) and pip for python 3.

From PyPi

  1. Run pip install ezcv

From source

  1. Clone this repo:
  2. Run pip install . or sudo pip3 install .in the root directory

Getting started

The easiest way to get started is by running:

ezcv init <name>

Replacing the <name> argument with your name (use "" if you want to use your full name i.e. ezcv init "Kieran Wood").

File structure

When you run the command a new folder will be created with your name, and some starter files like this:


Icon Meaning
📁 File Folder
📷 Image file
📝 File you should edit/delete
📄 File you don't need to edit/shouldn't delete
├── 📁.github/
│   └── 📁workflows/
│       └── 📄ezcv-publish.yml
├── 📁content/
│   ├── 📁education/
│   |   ├── 📝
│   |   └── 📝
│   ├── 📁projects/
│   |   └── 📝
│   ├── 📁volunteering_experience/
│   |   ├── 📝
│   |   └── 📝
│   └── 📁volunteering_experience/
│       ├── 📝
│       └── 📝
├── 📁images/
│   ├── 📷 abstract-landscape.jpg
│   └── 📷 ice-caps.jpg
├── 📄.gitignore
└── 📝config.yml

From here you can go into your config.yml file and pick a theme, then start filling out your content according to what's available for the theme.

To preview your content use:

ezcv -p

If you're on github then pushing the contents to master/main will activate the publish workflow and automatically publish the site to <username>


    ezcv [-h] [-v] [-p]
    ezcv build [-d OUTPUT_DIR] [-o]
    ezcv init [<name>] [<theme>] [-f]
    ezcv theme [-l] [-c] [-m] [<theme>]
    ezcv section <SECTION_NAME> [-t=<type>]

-h, --help            show this help message and exit
-v, --version         show program's version number and exit
-l, --list            list the possible themes
-c, --copy            copy the provided theme, or defined site theme
-p, --preview         preview the current state of the site
-o, --optimize        Optimize output files (takes longer to run)
-f, --flask           Generate Flask routes and requirements.txt
-d OUTPUT_DIR, --dir OUTPUT_DIR The folder name to export the site to
-m, --metadata        Generate metadata for the theme
-t=<type>, --type=<type> The type of section to generate [default: markdown]

See the CLI Documentation for additional details

Additional Documentation

User Docs

API Docs

Examples and resources

Template repository for bootstrapping projects

Template repository for ezcv integrated with flask

See documentation for included themes for examples of each of the included themes


V0.3.4; July 29th 2022

Adding a fix for macos installations

Bug Fixes

  • Fixed macos install bugs

V0.3.3; May 25th 2022

The focus for this release was adding features that were not finalized in time for the 0.3.0-0.3.2 releases, and cleaning up some bugs.


  • Added required_config section to theme metadata that's used:
    • on initialization to generate the config.yml file
    • on build to cancel the build if a required value is missing from config.yml
  • Added section command (note ezcv theme -s <section name> will no longer work)
    • use ezcv section <section name> to get information
    • use ezcv section <section name> [<type>] to create a new section (note type is only required for any non-markdown sections i.e. blogs [can be "blog" or "b"] or galleries [can be "gallery" or "g"]). See cli documentation for full usage details
  • Added deepsource integration
  • Added issue template for creating new themes


  • Added massively
  • Added blog
  • Added evie
  • Added parallax

Bug Fixes

  • Fixed bug with downloading aerial theme from remote
  • Fixed bug where ezcv_version was generated incorrectly in the metadata
  • Fixed a bug where a theme without a metadata.yml file would not load properly

V0.3.2; May 16th 2022

More minor fixes

Bug Fixes

  • Included missing flask dependency

V0.3.1; May 16th 2022

Minor fixes related to release

Bug Fixes

  • Fixed broken previews on documentation site
  • Included missing livereload dependency

Documentation improvements

  • Added additional theme provider suggestions

V0.3.0; May 16th 2022

The focus for this release is on adding blog support, QoL features and making ezcv a more well rounded static site builder. There will be a few items released in 0.3.1 that were meant for 0.3.0, but due to the need for python -m ezcv in order for github pipelines to work this release is going out now.


  • Blog posts
  • Theme Metadata
  • Adding an optimized mode for builds to increase site performance
  • Added ability to create and use custom ad-hoc filters; pass a list of function objects (called extra_filters) to ezcv.generate_site()
  • Added ability to directly invoke ezcv through python binary after installation python -m ezcv
  • Added ability to specify a remote URl for config.yml theme variable
  • Added continuous previewing to ezcv -p
  • Added option to initialize with flask ezcv init -f
  • Added python -m ezcv invocation
  • Added logging to files so attached loggers can get details for troubleshooting ( and logging.debug are recommended settings)


  • Added ability to embed theme metadata
  • Added blog section to existing themes
    • dimension
    • grayscale
    • solid_state
    • read_only

Bug Fixes

  • Added missing highlightjs to all themes for code blocks
  • Fixed bugs with preview loading in included themes docs

Documentation improvements

  • Added sections documenting new features
  • Rearranged included themes section to be alphabetical
  • Added section outlining sequence diagram for site generation
  • Added additional resources to help generating content
  • Added notice thanking theme providers

V0.2.2; August 2nd 2021

Documentation bugs after release

Bug fixes

  • Fixed issue with mkdocs build not recognizing correct URL and image paths

V0.2.1; August 2nd 2021

Fixed bugs after release

Bug fixes

  • Fixed the fact that colored was not included as dependency

V0.2.0; August 2nd 2021

The focus for this release is to add new features and themes



Bug fixes

  • Fixed markdown files with different standard extensions not being recognized
  • Fixed markdown files with capitalized extensions not being recognized

Documentation Improvements

  • Added documentation for new features
  • Added additional onboarding videos/tutorials
  • Added section for finding help/support

V0.1.1; January 10th 2020

Fixes following initial launch

Bug fixes

  • Added additional warnings for if necessary config value is not provided

Documentation improvements

  • Updated necessary docstrings

V0.1.0; January 10th 2020

Initial release of ezcv


Documentation improvements

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezcv-0.3.4.tar.gz (2.4 MB view hashes)

Uploaded source

Built Distribution

ezcv-0.3.4-py3-none-any.whl (2.4 MB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page