Skip to main content

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.

Generated HTML file name

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.

Excluding Files with .cvwonderignore

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
note
  • Files with non-.yml/.yaml extensions are silently ignored in bulk mode.
  • If a single file fails (parse error, validation error, render error), processing continues for the remaining files.
  • The --concurrency flag 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>
tip

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
Serving the CV

The serve command will open your default browser and display the rendered CV.

note

Serving your CV will help you to see the changes in real-time.