This repo contains the source I use to automatically generate my curriculum vitae as a webpage and PDF from YAML and BibTeX input.
generate.py reads from cv.yaml and publications and outputs LaTeX and Markdown by using Jinja templates.
This requires a Python 3 installation,
and the hashbang of generate.py
assumes an executable named
python3
is available on the path.
Dependencies are included in requirements.txt
and can be installed
using pip
with pip3 install -r requirements.txt
.
On Mac or Linux, make
will call generate.py and
build the LaTeX documents with latexmk
and biber
.
The Makefile will also:
- Stage to my website with
make stage
, - Start a local jekyll server of my website with updated
documents with
make jekyll
, and - Push updated documents to my website with
make push
.
Change the content in cv.yaml
.
You should also look through the template files to make sure there isn't any
special-case code that needs to be modified.
The Makefile
can also start a Jekyll server and push the
new documents to another repository.
To use the Jekyll integration,
review the BLOG_DIR
variable and the jekyll
and push
targets.
- Strings in
cv.yaml
should be LaTeX (though, the actual LaTeX formatting should be in the left in the templates as much as possible). - If you do include any new LaTeX commands, make sure that one of the
REPLACEMENTS
ingenerate.py
converts them properly. - The LaTeX templates use modified Jinja delimiters to avoid overlaps with
normal LaTeX. See
generate.py
for details.
This work is distributed under the MIT license (LICENSE-bamos.mit
)
with portions copyright Ellis Michael from
emichael/resume.
Ellis' portions are also distributed under the MIT license
(LICENSE-emichael.mit
) and include
a re-write of generate.py
and template restructuring.