README written by Nick Strayer. Thanks again, Nick, for sharing this awesome workflow with us. Here's my contribution 😉 :
_
Switch to googlesheets_
As I get older and more crotchety I find it more and more difficult to manually update a CSV. In response to this, I have moved the data-storing mechanism from a plain CSV to google sheets using the wonderful googlesheets4 package. This allows for a much more easy updating system and also makes it easy to store all the other info that didn't feel write to put into a CSV before (like the intro and aside text) right with everything as separate pages/sheets within the main sheet.
I have attempted to keep the whole thing as easy as possible to understand and modify by using a publically available sheet and preserving the old CSV driven way behind a boolean variable that can be set in the setup chunk.
This repo contains the source-code and results of my CV built with the pagedown package and a modified version of the 'resume' template.
The main files are:
index.Rmd: Source template for the cv, contains a variablePDF_EXPORTin the header that changes styles for pdf vs html.index.html: The final output of the template when the header variablePDF_EXPORTis set toFALSE. View it at nickstrayer.me/cv.strayer_cv.pdf: The final exported pdf as rendered by Chrome on my mac laptop. Links are put in footer and notes about online version are added.
resume.Rmd: Source template for single page resume.resume.html/strayer_resume.pdf: Result for single page resume.
parsing_functions.R: A series of small functions for parsing a position entry into the proper HTML format. Includes logic for removing links if needed etc..gather_data.R: Loads the data that makes up the body of both the CV and resume. Either pulls from a specified google sheet with info or multiple csvs. (Examples of both are provided in repo.)csvs/*.csv: A series of CSVs containing the information CV and resume. Included as examples if the non-googlesheets method of storing data is prefered.css/: Directory containing the custom CSS files used to tweak the default 'resume' format from pagedown.
- Fork, clone, download the zip of this repo to your machine with RStudio.
- Make a copy of my info-holding google sheet and fill in your personal info for all the sheets (
positions,language_skills,text_blocks, andcontact_info). a. If you want to use CSV's instead of google sheets, update the contents of the CSVs stored in thecsvs/folder. - Go through and personalize the supplementary text in the Rmd you desire (
index.Rmdfor CV,resume.Rmdfor resume). - Print each unique
section(as encoded in thesectioncolumn ofpositions.csv) in your.Rmdwith the commandposition_data %>% print_section('education'). - Get the PDF out by viewing in your browser and then doing
control/command + Pand selecting "print to pdf". Alternatively usepagedown::chrome_print()orknit: pagedown::chrome_printin RMD header. See pagedown docs on printing for more details. - Let the world know how awesome you are! (Also send me a tweet/email if you desired and I will broadcast your version of the CV on this repo and or twitter.)
The blog post I originally wrote about this process used an older version of this document. I think that the new googlesheets method is easier to maintain and extend, however the old version is alive and well here.