Why I switched to markdown for my CV

How to write a beautiful CV, using markdown, css and html instead of LaTeX.

eliseo papa
4 min readJun 10, 2017

I have previously used LaTeX to typeset my curriculum vitae, as it invariably produces a beautiful looking document. I have now become frustrated at how long it takes me to relearn LaTeX from scratch every time I want to change something. Plus my .tex source file was becoming completely unreadable. In an attempt to clear up the mess, I decided to put all the content in a markdown file and use CSS to style it. The result is markdown-cv, which can be forked and used as a template by anyone who wants to do the same thing.

Don’t get me wrong! there is nothing wrong with LaTeX. In fact, I have kept my curriculum vitae in LaTeX for a long time. My workflow included a plain text editor and a Mac installation of LaTeX. LaTeX’s elegant typography meant my CV would always look a tad better than its corresponding version in word, and I stuck to it. I also enjoyed having to deal only with plain text files, saving me from the converting files from one word processor to the other. Not to mention that having a single file to update, rather than a series of word processor files scattered everywhere, kept me more disciplined about updating it regularly.

Nevertheless, my system was definitely not perfect. For a document as short as my CV, LaTeX was probably overkill. One or two hours spent in word can easily produce a new style or version of the CV, while doing the same thing in LaTeX would always require much more tinkering. I began to get tired of sparkling small LaTeX commands throughout the file, adding \vskip and page breaks to maintain the overall appearance. Also, even though it was kept as plain text, the LaTeX file which contained my CV became less and less readable. Though the primary purpose of LaTeX should be to separate content from presentation, the division was becoming to me always less evident.

The last drop was when I tried to update the overall look of my resume. I ended up having to rearrange paragraphs and dates, while making up obscure LaTeX macros just to move the years to a different place or change the color of a particular element.

Having recently worked with static blog engines, I immediately thought the division between content and presentation was much more elegant there. The content is usually kept in Markdown, which is very easily readable in any text editor and can be readily converted to HTML. Styling the content is done using CSS and can be done differently for print media or for visualization in a web browser using media queries.

So I proceded to transfer my CV in Markdown format, created a simple HTML template and rendered it using jekyll, the engine used by GitHub to render static pages. I created a CSS to render the page in a style inspired by Kieran Healy vita template.

Write your CV in markdown like this …

markdown version

and get a beautiful looking page like this

styled output

You can use github pages to publish it or build it locally. You can view the CV in the browser and to get a PDF version of the CV, simply press print.

You can see the various pieces of the workflow arranged on GitHub (Hosting on GitHub there also means I can maintain different versions of the same file, eg. one resume for tech jobs and another for academic purposes). I am quite happy with the final result and glad to say that it already helped over 100 people in building their resume!

I will admit that opening up Word would have been quicker …

https://imgs.xkcd.com/comics/the_general_problem.png

At the very least the main content of my curriculum vitae is now available in plain readable text. I can easily edit it without having to remember any LaTeX commands. That and I needed the CSS practice…

Originally published at elipapa.github.io.

--

--