/cv

My YAML cv and resume.

Primary LanguageTeXMIT LicenseMIT

Linux Build Status Windows Build Status Python Dependency Status

About

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.

Building and running

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.

2023-05-16 update

I recently set this up again on my MacOS. Here are the additional steps I had to follow to get the dependencies for LaTeX in particular:

  • Missing latexmk
  • this is a nice guide for setting up on MacOS
  • brew update and brew install --cask basictex
  • latexmk was missing so I installed it with sudo tlmgr install latexmk
    • had to update tlmgr with sudo tlmgr update --self
  • make was missing a bunch of .cls and .sty files.
    • sudo tlmgr install moderncv
    • sudo tlmgr install fontawesome
    • Then install fonts with sudo fmtutil-sys --all
    • sudo tlmgr install fontawesome5 because fontawesome5.sty was missing still
    • sudo tlmgr install multirow then necessary
    • sudo tlmgr install arydshln
    • sudo tlmgr install biblatex
    • sudo tlmgr install biber
    • sudo tlmgr path add

The Makefile will also:

  1. Stage to my website with make stage,
  2. Start a local jekyll server of my website with updated documents with make jekyll, and
  3. Push updated documents to my website with make push.

What to modify

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.

Warnings

  1. Strings in cv.yaml should be LaTeX (though, the actual LaTeX formatting should be in the left in the templates as much as possible).
  2. If you do include any new LaTeX commands, make sure that one of the REPLACEMENTS in generate.py converts them properly.
  3. The LaTeX templates use modified Jinja delimiters to avoid overlaps with normal LaTeX. See generate.py for details.

Publications

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.

Licensing

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.

Similar Projects

There are many approaches to managing a resume or CV in git, and this project uses unique Markdown and LaTeX templates. The following list shows a short sampling of projects, and I'm happy to merge pull requests of other projects.

Name Stargazers Description
ajn123/CV 13 My resume in Latex
cies/resume 261 My resume as a PDF including the well commented LaTeX source and build instructions.
divad12/resume 40 Yaml resume compiled into multiple formats (such as LaTeX, HTML (TODO), etc.)
emichael/resume 2 Generate LaTeX and Markdown resume from YAML with Python.
icco/Resume 258 A markdown port of my resume
jsonresume/resume-schema 644 JSON-Schema is used here to define and validate our proposed resume json
kaeluka/cv 68 My CV.
masasin/resume 2 Automatically generate your résumé and various cover letters from YAML files.
mwhite/resume 707 Markdown -> PDF/HTML resumé generator
prat0318/json_resume 1123 Generates pretty HTML, LaTeX, markdown, with biodata feeded as input in JSON
QuteBits/resume_42 14 Python script that generates a beautiful resume from YAML data
raphink/CV 77 My CV
sc932/resume 337 My CV/resume in LaTeX.
terro/CV 27 My cv template
there4/markdown-resume 749 Generate a responsive CSS3 and HTML5 resume with Markdown, with optional PDF output.
zellux/resume 134 My resume, generated with moderncv
Maples7/barn 10 A resume/CV generator, parsing information from YAML file to generate a static website which you can deploy on the Github Pages. Exactly like resume-version Hexo.