Skip to content

Easing the process of building and maintaining a CV using YAML and pandoc

Notifications You must be signed in to change notification settings

jvelizf/cv-boilerplate

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CV Boilerplate

A boilerplate to ease the pain of building and maintaining a CV or résumé using pandoc.

Intro

Separating presentation from content makes life easier. The typical content of a CV is a perfect fit for a YAML file due to its structured nature:

name: Immanuel Kant
address: Königsberg, Prussia
email: [email protected]

AOS:
- Aesthetics, Epistemology, Ethics, Metaphysics, Philosophy of Mind, Political Philosophy

AOC:
- German Idealism, Philosophy of Religion

experience:
- years: 1770-1804
  employer: University of Königsberg
  job: Chair of Logic and Metaphysics
  city: Königsberg, DE

The advantage of keeping things in the YAML file is that it is then easy to convert the information, using pandoc, into a PDF (via pandoc and LaTeX) or html (via pandoc and some css styling), or any other format (e.g. a Word .docx file).

For example, using template.tex we can easily iterate on repetitive data structures:

$for(experience)$
  $experience.years$\\
  \textsc{$experience.employer$}\\
  \emph{$experience.job$}\\
  $experience.city$\\[.2cm]
$endfor$

There is also a makefile included for ease of generation of PDF and html. With this method, you can keep your entire CV encoded in a single YAML file, put it under version control (into a gist, for instance), and generate a PDF and webpage on the fly, with a single make command when needed.

Dependencies

  1. LaTeX with the following extra packages: fontspec geometry multicol xunicode xltxtra marginnote sectsty ulem hyperref polyglossia
  2. Pandoc

To install LaTeX on Mac OS X, I recommend getting the smaller version BasicTeX from here and installing the additional packages with tlmgr afterwards. Same goes for Linux: install texlive-base with your package manager and add the needed additional packages later.

To install pandoc on Mac OS X, run brew install pandoc. To install it on Linux, refer to the official docs.

Getting started

  1. Run this in your terminal to clone the repo, move into the right directory and delete all the git stuff:

     git clone [email protected]:mclearc/cv-boilerplate.git && cd cv-boilerplate && rm -rf .git
    
  2. Open content.yml with your text editor and fill it with your personal details, work experience, education, and desired settings.

  3. Run make to compile the PDF.

  4. Tweak the template.tex, template.html, and style.css files until you're satisfied with the results.

Refer to pandoc's documentation to learn more about how templates work.

Note: for the font settings to work this template needs to be compiled with XeTeX.

Available settings

  • mainfont: Hoefler Text is the default, but every font installed on your system should work out of the box (thanks, XeTeX!)
  • fontsize: Possible values here are 10pt, 11pt and 12pt.
  • lang: Sets the main language through the polyglossia package. This is important for proper hyphenation, among other things.
  • geometry: A string that sets the margins through geometry. Read this to learn how this package works.

Recommended readings

Resources

  • If you're not familiar with the YAML syntax, here's a good overview.
  • If you want to edit the template but LaTeX scares you, this docs put together by ShareLaTeX cover most of the basics and are surprisingly kind to the beginner.
  • Odds are your question already has an answer on TeX Stack Exchange. Also, pretty friendly crowd in there.

See also

License

This repository contains a modified version of Dario Taraborelli's cvtex template, with further modifications from Mattia Tezzele's original boilerplate.

License: CC BY-SA 3.0

About

Easing the process of building and maintaining a CV using YAML and pandoc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TeX 49.1%
  • HTML 29.0%
  • CSS 13.3%
  • Makefile 8.6%