Generate your CV
To generate your CV, you need to create a YAML file with your data and use the theme to generate the CV.
Validate your CV
Before generating your CV, you can validate your YAML file to catch errors early:
cvwonder validate --input=cv.yml
This will check for:
- YAML syntax errors
- Missing required fields
- Invalid data formats (email, URLs, etc.)
- Out-of-range values
You can also validate automatically during generation:
cvwonder generate --input=cv.yml --output=generated/ --validate
Learn more about validation in the Validation guide.
Generate your data with the theme
When your YAML CV file is ready, you can generate your CV using the following command:
cvwonder generate --input=cv.yml --output=generated/
Your CV will be generated in the generated/ directory.
The generated HTML file name is based on the input YAML file name. For example, if your input YAML file is germain.yml, the generated HTML file will be germain.html.
It allows you to generate multiple CVs from different YAML files without overwriting the generated HTML file.
When generating your CV, you may want to exclude certain files from being copied from the theme directory to the output directory.
CVWonder supports a .cvwonderignore file that works like .gitignore to control which files are excluded during generation.
Bulk generation
When the --input flag points to a directory, cvwonder generate automatically enters bulk mode and processes all .yml / .yaml files found recursively under that directory.
# Generate all CVs in ./cvs/ into generated/
cvwonder generate --input=./cvs/ --output=generated/ --theme=default
The output mirrors the input directory structure:
cvs/
alice.yml → generated/alice.html
managers/
bob.yml → generated/managers/bob.html
You can control the number of parallel workers with --concurrency (default: 4):
cvwonder generate --input=./cvs/ --output=generated/ --concurrency=8
A summary report is printed at the end:
Total: 3 | Success: 3 | Failed: 0
- Files with non-
.yml/.yamlextensions are silently ignored in bulk mode. - If a single file fails (parse error, validation error, render error), processing continues for the remaining files.
- The
--concurrencyflag is silently ignored in single-file mode.
Watch the changes
You can automatically regenerate your CV when updating either the YAML file or the theme by adding the --watch flag to the generate command:
cvwonder generate --input=cv.yml --output=generated/ --watch
To enable the watch feature on CV Wonder, you have to inject an internal js script in the template. This script will automatically reload the page when the CV data or the Theme is updated.
<script src="http://localhost:35729/livereload.js"></script>
Starting CV WOnder version 0.3.0, the live reload script is automatically injected in the template.
Serve the generated CV
You can render and serve your CV on a simple HTTP server which will automatically refresh the page when updating either the YAML file or the theme.
cvwonder serve --input=cv.yml --output=generated/ --watch
The serve command will open your default browser and display the rendered CV.
Serving your CV will help you to see the changes in real-time.