This repo is based on Brandon Amos' work and his cv repo. It contains the source I use to automatically generate my curriculum vitae as a Markdown file (to utilise as webpage content) 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 work is distributed under the MIT license (LICENCE-chillja.mit
)
with portions copyright Brandon Amos from bamos/cv (LICENSE-bamos.mit
) and
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.
You can find plenty of similar project at bamos/cv.
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.
All publications are stored as BibTeX in publications. The entries can be obtained from Google Scholar. The order in the BibTeX file will be the order in the output files.
BibTeX is built for integration with LaTeX, but producing Markdown is not traditionally done from BibTeX files. This repository uses BibtexParser to load the bibliography into a map. The data is manually formatted to mimic the LaTeX IEEE bibliography style.