Giter VIP home page Giter VIP logo

cv's Introduction

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.bib and outputs LaTeX and Markdown by using Jinja templates. Statistics about my blog and github account are obtained using blog-info.py and github-info.py.

YAML.

I chose to use YAML because it can be easily written and maintained by hand and it's easy to read into Python. Also, I chose YAML over JSON because YAML better supports comments, which I use a lot in my CV for experimental changes and archiving outdated information.

BibTeX.

I use BibTeX to manage publications because I can easily copy and paste from Google Scholar and so I can use the publications.bib file directly in new LaTeX papers.

LaTeX.

I wrote the LaTeX template to be as minimal as possible because I like making small changes. The larger resume and templates I've seen are more difficult to modify. I've also had problems with a multi-page CV when using other templates, and I've added better support in these by wrapping every section in a minipage environment so the sections are intelligently put on correct pages. This is working well for small sections, but I'm not sure how it will work for sections that are larger than a page in length.

Markdown.

I also added a Markdown template because an HTML CV blends better with my personal website than embedding a PDF CV.

How to run.

The 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 pdflatex and biber.

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.

Further implementation and usage details.

generate.py

  1. Read cv.yaml into Python as a map and loop through the order vector, which maps a section key to the title to display. This is done so sections can be moved and hidden without deleting them.
  2. Generate the LaTeX or Markdown content for every section by using the templates cv-section.tmpl.tex and cv-section.tmpl.md. The conditional statements make the sections a little messy, but using a template for each section lets the order be changed solely by the order vector.
  3. Generate the entire LaTeX or Markdown document by using the templates cv.tmpl.tex and cv.tmpl.md.

Publications.

Currently, all publications are stored as BibTeX in publications.bib. These have to be in the order you want them to appear in the output files. Including this in LaTeX is straightforward, but producing Markdown is slightly more complicated. I use BibtexParser to load the bibliography into a map and manually format the data to mimic the LaTeX IEEE bibliography style.

cv's People

Watchers

James Cloos avatar Jimmy Touma avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.