Source code to automatically generate a responsive academic website and CV
from .bib files of publications and past talks and .yaml files
of past research experience, students, activities, research ideas, etc.
This started out as a customized .bst files (see styles/cv.bst)
for building my CV from bib entries.
Then I started storing everything in .bib files, and creating weird bib
entries in my cv.bst file to handle increasingly bazaar document types.
Eventually I realized it would be better to automate website maintenance as well. But this requires increased flexibility, and a lot of Python scripts.
Eventually I realized I needed to store certain items (such as work experience, awards, degree, collaborators, and fun links) in some other format. I was inspired to use YAML after stumbling across Brandon Amos's CV: https://github.com/bamos/cv
Using this project requires
- pdflatex,
- GNU Make,
- Python 3
- pyyaml, and
- Matplotlib.
After you have all dependencies, create a copy of the info folder with your personal information in it.
Then, create a template for each of your CV and Website, by modifying either
of the cv.template or web.template files.
Update the Makefile to point to your preferred installation and
build directories.
Make sure the Makefile also is aware of any image files or other
dependencies for your website, or make sure that they are already saved in
the build directory.
Create additional rules if you have multiple versions (i.e., a long and short CV).
Then use the make command to build everything.
See my website repo for an example of how I use this: https://github.com/thchang/thchang.github.io
Note that your information (bib and yaml files) must be saved in a
directory named info in your working directory when you execute the
make command AND info mus contain a file named meta.yaml,
formatted as in my example.
In general, you'll have good luck if you replace my information with yours but keep the same keys and format.