Git Product home page Git Product logo

datadrivencv's Introduction

datadrivencv

The goal of datadrivencv is to ease the burden of maintaining a CV by separating the content from the output by treating entries as data.

Installation

The development version from GitHub with:

# install.packages("devtools")
devtools::install_github("nstrayer/datadrivencv")

Motivation

Updating a CV is not fun

Anytime I would go to add something to my CV I ended up wanting to change the format a tiny bit. This usually meant the entire word document completely falling apart and needing to have each entry copied and pasted into a new version.

Ultimately this process felt formulaic and repetitive, prime indicators they could be done better with code. Using a spreadsheet to store each entry in the CV and R to write markdown seemed like the way to go. Pagedown made this even easier. Meaning that the same CV could be rendered with interactive HTML and PDF without changing the underlying rendering engine like was done with kniting to pdf vs knitting to html.

No lock-in

Inspired heavily the the usethis package, datadrivencv strives to make itself unnecessary. The main function is use_data_driven_cv, which sets up the files you need to build your CV. These files are self-contained meaning if you uninstall datadrivencv your CV will still knit fine. All the R code logic is contained in a sourced script so if you want to change it you can do so.

The package aims to bootstrap you to a working data-driven CV pipeline. Serving as a jumping off point for you to build your own custom CV, you may at first want to leave it as is and then slowly tweak things to keep it fresh. You have all the code, so you can!

Using it

The first step to using the package is the use_data_driven_cv() function. This function takes a few input parameters and when when run, sets up a series of files in your current working directory. E.g.

# run ?datadrivencv::use_datadriven_cv to see more details
datadrivencv::use_datadriven_cv(
  full_name = "Nick Strayer",
  data_location = "https://docs.google.com/spreadsheets/d/14MQICF2F8-vf8CKPF1m4lyGKO6_thG-4aSwat1e2TWc",
  pdf_location = "https://github.com/nstrayer/cv/raw/master/strayer_cv.pdf",
  pdf_location_resume = "https:///github.com/nstrayer/cv/raw/master/strayer_resume.pdf"
  html_location = "nickstrayer.me/cv/",
  html_location_resume = "nickstrayer.me/cv/resume/",
  source_location = "https://github.com/nstrayer/cv"
)

The available arguments are:

Argument Description
full_name Your full name, used in title of document and header
data_location Path of the spreadsheets holding all your data. This can be either a URL to a google sheet with multiple sheets containing the four data types or a path to a folder containing four .csvs with the neccesary data.
pdf_location What location will the PDF of this CV be hosted at?
pdf_location_resume What location will the PDF of this CV be hosted at?
html_location What location will the HTML version of this CV be hosted at?
html_location_resume What location will the HTML version of this CV be hosted at?
source_location Where is the code to build your CV hosted?
open_files Should the added files be opened after creation?
use_network_logo Should logo be an interactive network based on your CV data? Note that this uses the function build_network_logo() so will introduce a dependency on this package.

This code is all that’s needed to setup a full CV. It outputs five files:

File Description
cv.rmd An RMarkdown file with various sections filled in. Edit this to fit your personal needs.
dd_cv.css A custom set of CSS styles that build on the default Pagedown “resume” template. Again, edit these as desired.
resume.rmd An RMarkdown for a shorter resume. Edit this to fit your personal needs.
dd_resume.css A custom set of CSS styles that build on the default Pagedown “resume” template. Again, edit these as desired.
render_cv.r Use this script to build your CV in both PDF and HTML at the same time.
cv_printing_functions.r A series of functions that perform the dirty work of turning your spreadsheet data into markdown/html and making that output work for PDF printing. E.g. Replacing markdown links with superscripts and a links section, tweaking the CSS to account for chrome printing quirks, etc..

Storing your data in spreadsheets

By default the googlesheets4 package is used to get a Google Sheet with all necessary data. To build your own version I suggest simply copying my data, removing all the rows, and filling in with your data.

Format of spreadsheets:

There are four spreadsheets of “data” that are used. These take the form of separate sub-sheets within a google sheet.

The four spreadsheets that are needed and their columns are:

entries

Column Description
section Where in your CV this entry belongs
title Main title of the entry
loc Location the entry occured
institution Primary institution affiliation for entry
start Start date of entry (year). Can be left blank for single point events like a manuscript.
end End year of entry. Set to “current” if entry is still ongoing.
description_* Each description column is a separate bullet point for the entry. If you need more description bullet points simply add a new column with title “description_{4,5,..}”
description_md A markdown formatted description of the entry. If this is supplied any description_* columns will be ignored.

language_skills

Column Description
skill Name of language
level Relative numeric level of skill

text_blocks

Column Description
loc Id used for finding text block
text Contents of text block. Supports markdown formatting.

contact info

Column Description
loc Id of contact section
icon Icon used from font-awesome 4 to label this contact section
contact The actual value written for the contact entry

Using .csvs instead of google sheets

Don’t want to use google sheets to store your data? Not a problem. Just make four .csvs (entries.csv, language_skills.csv, text_blocks.csv, contact_info.csv) that have the same matching format as above and pass the folder containing those as your data_location when initializing with use_datadriven_cv().

The function use_csv_data_storage() will set these up for you.

Rendering your CV

Now that you have the templates setup and you’ve configured your data, the last thing to do is render. The easiest way to do this is by opening cv.rmd in RStudio and clicking the “Knit” button. This will render an HTML version of your CV. However, you most likely want a PDF version of your CV to go along with an HTML version. The easiest way to do this is to run the included script render_cv.r:

render_cv.r

# Knit the HTML version
rmarkdown::render("cv.rmd",
                  params = list(pdf_mode = FALSE),
                  output_file = "cv.html")

# Knit the PDF version to temporary html location
tmp_html_cv_loc <- fs::file_temp(ext = ".html")
rmarkdown::render("cv.rmd",
                  params = list(pdf_mode = TRUE),
                  output_file = tmp_html_cv_loc)

# Convert to PDF using Pagedown
pagedown::chrome_print(input = tmp_html_cv_loc,
                       output = "cv.pdf")

This script will render your CV in HTML and output it as cv.html, it will also turn on the pdf_mode parameter in cv.rmd, which will strip the links out and place them at the end linked by inline superscripts. Once the pdf version is rendered to HTML, it will then turn that HTML into a PDF using pagedown::chrome_print(). By using this script you can easily make sure your get both versions rendered at the same time without having to manually go in and toggle the pdf mode parameter in the yaml header and then use the print dialog in your browser.

Questions?

Confused by anything (there’s a lot to be confused by)? Open an issue on github and let me know. Not comfortable with github issues? Tweet the question at me on Twitter: @nicholasstrayer.

datadrivencv's People

Contributors

nstrayer avatar paulocr avatar sctyner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datadrivencv's Issues

Links do not work (Render) after fourth section using googlesheets4 pckg

Hello, I'm using datadrivencv with googlesheets4 packages to build my CV and everything it apparently worked well until I perceive that links that embed in my sheet do not render after 4 sections. I mean, I have 7 sections in my google sheet (education, research position, teaching positions, academic articles, talks, events, committee). When I run the function print_text_block in the cv.rmd file just the first four sections render links of those sections. Other sections just print the text without the enabled links, I can not click and be redirected to the pages.

Has anyone had a similar issue?

PS.: My links work if I write all text in the cv.rmd file instead of using google sheet content, without using the print_text_block...

Thanks in advance

Enhancement: force fixed width for icons in 'contact' section

I had some trouble aligning the text entries in the contacts section when using different font-awesome icons eg. StackOverflow and Github have different icon width on default.

Luckily you can set the fa-fw class on the icons like follows: <i class='fa fa-{icon}'></i> to force a fixed width. This aligns the text. I'm making a PR in a minute for this. This shouldn't hurt anyone and the text then perfectly aligns.

Can we generate nice looking compact short Resume using the in_resume filter in the GoogleSheet?

Using your DataDrivenCV package, how can we generate Short Resume using the filter in the GoogleSheet? GoogleSheet does contain 'in_resume' column with 'TRUE/FALSE' values, How can we generate only the records with in_resume = TRUE, and nicely format it in a compact format, using dd_resume.css incorporating all the latest improvements from dd_cv.css file.

Previously I was able to generate nice looking compact short Resume using your CV package in GitHub. Did you remove generating short Resume functionality in this DataDrivenCV package? I do see few old resume related files but it currently doesn't seem to be used. Furthermore, it probably needs updating with latest improvements you made in DataDrivenCV.

Default filling in time and description column

Before, I can leave blank in my google spreadsheet in "End" and "Description_n" columns. The rmarkdown can knit fine in the education section. But now, if I leave blank in the "End" and "Description_n" columns, they'd turn up with "Current" and a dot. Any idea I can leave them blank and not popping the "Current" or the little dot?

Screenshot 2020-05-30 19 18 48

Concise style not reflected in HTML output

Great package, many thanks.

I found the data-concise=true bit in {} after section titles is not making any difference.

But if I add two lines in the glue template in print_section() it does work. So it might be worth adding a param to print_section()?

Happy to submit a PR if you are interested.

Does not appear to be inside a project error.

I dont know if I am doing this wrong but I get the following error even when using the example code:

Error: Path '/home/user/Downloads/cv/' does not appear to be inside a project or package.

Different type of entry - no years

It would be nice to have entries on my CV without any year variable attached to them, like a running list of conferences or names of references. Is there a quick tweak for that?

Pages get cut off only if network logo is included

Thank you for the amazing package!

I was recently updating my CV with datadrivencv - I had previously built my CV based on your old template, but still hadn't given a try with the new package. Anyways, and I noticed that if some sections were too long, they would get cut off when knitting.

I guess this is something you were trying to avoid here:
https://github.com/nstrayer/datadrivencv/blob/master/inst/templates/cv.Rmd#L142

I noticed, though, that the sections only get cut off if the datadrivencv::build_network_logo(CV$entries_data) is present. If this is excluded, sections are not cut off anymore.

This is probably already a known issue, but I thought it would worth it to warn new users about it. I wonder if the network logo gets isolated in an iframe could solve the issue?

Contact info not turned into links

Hi there,

The github, twitter, linkedin and website lines in the 'Contact' section are only turned into functional links if you put the full URL in the google spreadsheet. That way however it does look terrible in the HTML or PDF version.
If you create a link in the spreadsheet, the knitting function will only look at the 'text' part of the link, and not turn it into an actual link.

Is there a way around this?

Cheers

image

print_text_block("intro")

Hi,
I am trying to build my cv and CV %<>% print_text_block("intro") chunk results into Error in stringr::str_extract_all(text, "(?<=\[).+?(?=\])")[[1]] : subscript out of bounds. Where should the intro text go? Also if I do not want to plot the network plot, where should I edit?

Regards

online version is the actual path in my PC

When setting the html_location, I imagine one should have an actual online version of the cv, right? or should one create this "page" before in order to have the online version? It seems I still have the actual path in my computer for the HTML output (i.e. file:///C:/Users/admin/Hoja%2....html not a "...me/cv"

thanks!

ps. I just created a note at the end of my resume (small cv) where I want to link the long cv, but had to use my google drive file (pdf of my cv)

Install Data Driven

I run these commands

install.packages("devtools")
devtools::install_github("nstrayer/datadrivencv")

and get this error

Error: Failed to install 'datadrivencv' from GitHub:
(converted from warning) cannot remove prior installation of package ‘ps’

Missing icon dependency?

While trying to knit the CV.Rmd file I get the following error:

image

Specifically, the knit execution stops at:

image

I'm wondering if there's a dependency issue?

Language skill bars not visible

Hi @nstrayer ,

I can reproduce your entire CV apart from one thing - the language skill bars aren't visible:

image

However, if I click and drag on where they ought to be the language names appear, albeit faintly:

image

Note that this is only the case when rendering to html, not PDF which works fine. Please could you advise? I suppose that I need to change something in the CV_printing_functions.R file?

Thanks

Error during installation (name change in 'icon' package)

Dear Nick,

since the package 'icon' was recently renamed to 'icons', I experienced that your package 'datadrivencv' is not anymore installable:

ERROR: dependency ‘icon’ is not available for package ‘datadrivencv’
* removing ‘/Library/Frameworks/R.framework/Versions/4.0/Resources/library/datadrivencv’
Error: Failed to install 'datadrivencv' from GitHub:
  (converted from warning) installation of package ‘/var/folders/qh/ryvpcc611rj_zt0d3b_d1mz00000gn/T//Rtmp4Yg4pQ/file1767511837a3/datadrivencv_0.1.0.tar.gz’ had non-zero exit status

Following the repo of 'icon' (https://github.com/mitchelloharawild/icons), the package was renamed yesterday to 'icons'. Even if the new package 'icons' is installed, the installation process of 'datadrivencv' is unable to finish.
The workaround I found is to install manually version 0.1 of 'icon' from here: https://github.com/mitchelloharawild/icons/releases

prepend / to csv files (lines 49-52 of cv_printing_functions.r)

Hi, thx for this cool package. I'm just trying it out and did datadrivencv::use_csv_data_storage() to set up "examples of the four CSVs needed for building CV" in the default folder_name = "data". Then

use_datadriven_cv(
  full_name = "E",
  data_location = "data"
)

Then the render_cv.r script fails because it tries to read readr::read_csv(paste0(data_location, "entries.csv"), skip = 1) thus, tries to read dataentries.csv instead of data/entries.csv.

Other users would not face that little glitch if you just paste0(data_location, "/entries.csv") (prepending slash to the filename).
Or, perhaps just highlight (underline and use bold fontface) in the docs that the data_location in use_datadriven_cv should have a trailing slash.

Change date format

Hi Nick, could you help me to print the dates on the resume to GMT+1 in Dutch/Netherlands?

Thanks in advance!

Love the datadriven cv!

Gr. Vinood

Using CSV-files don't work

Hi,
Thanks for a very nice package. I tried using the package with csv-files instead of the google spreadsheet, but it returns an error. With the google spreadsheet it worked as it should.

Code:

devtools::install_github("nstrayer/datadrivencv")
library(datadrivencv)

use_csv_data_storage(here::here("Data_3")) 

datadrivencv::use_datadriven_cv(
  full_name = "Test Testing",
  data_location = here::here("Data_3/"),
  pdf_location = "https://github.com/nstrayer/cv/raw/master/strayer_cv.pdf",
  html_location = "nickstrayer.me/cv/",
  source_location = "https://github.com/nstrayer/cv"
)

Then in the new render_cv.R:

rmarkdown::render("cv.Rmd",
                  params = list(pdf_mode = FALSE),
                  output_file = "cv.html")

This returns the error:

processing file: cv.Rmd
  |..                                                                                         |   3%
   inline R code fragments

  |.....                                                                                      |   5%
label: unnamed-chunk-1 (with options) 
List of 1
 $ include: logi FALSE

Quitting from lines 15-31 (cv.Rmd) 
Error in if (!after) c(values, x) else if (after >= lengx) c(x, values) else c(x[1L:after],  : 
  missing value where TRUE/FALSE needed

Knitting CV.rmd does not work either, and running the first chunk also returns an error:

Chunk:

knitr::opts_chunk$set(
  results='asis', 
  echo = FALSE
)

library(magrittr) # For the pipe
source("CV_printing_functions.R")

# Read in all data and initialize a CV printer object
CV <- create_CV_object(
  data_location = "/Users/obs/Dropbox/Phd/CV/R-CV/Data_3/",  
  pdf_location = "https://github.com/nstrayer/cv/raw/master/strayer_cv.pdf",
  html_location = "nickstrayer.me/cv/",
  pdf_mode = TRUE
)

And the output:

Parsed with column specification:
cols(
  `Where in your CV this entry belongs` = col_character(),
  `Main title of the entry` = col_character(),
  `Location the entry occured` = col_character(),
  `Primary institution affiliation for entry` = col_character(),
  `Start date of entry (year)` = col_character(),
  `End year of entry. Set to "current" if entry is still ongoing.` = col_character(),
  `Each description column is a separate bullet point for the entry. If you need more description bullet points simply add a new column with title "description_{4,5,..}"` = col_character(),
  X8 = col_character(),
  X9 = col_character(),
  `A filter variable that is used to decide if entry is in the smaller resume.` = col_character()
)
Parsed with column specification:
cols(
  `Name of language` = col_character(),
  `Relative numeric level of skill` = col_character()
)
Parsed with column specification:
cols(
  `Id used for finding text block` = col_character(),
  `Contents of text block. Supports markdown formatting.` = col_character()
)
Parsed with column specification:
cols(
  loc = col_character(),
  icon = col_character(),
  contact = col_character()
)
Error in if (!after) c(values, x) else if (after >= lengx) c(x, values) else c(x[1L:after],  : 
  missing value where TRUE/FALSE needed
In addition: Warning message:
Missing column names filled in: 'X8' [8], 'X9' [9] 
Called from: append(x[x_vars], y, after = after)

Editing the sidebar

Hi Nick,

My new CV using your package is coming along nicely. But one problem I have with it is re-formatting, specifically when trying to tweak the sidebar, e.g. moving the asides or disclaimer up or down the document. I've tried just moving them to different places in cv.Rmd but it gives some unexpected results. Please could you give a few words of advice? I suppose I need to edit dd_cv.css?

Thanks

use_datadriven_cv: "Error: ...datadrivencv/templates/cv.rmd does not exist"

Nick, thanks for sharing this. I'm looking forward to making this work.

After the installation seems to complete successfully, I run the following....

datadrivencv::use_datadriven_cv(
 full_name = "Scott H. Hawley",
 data_location = "https://docs.google.com/spreadsheets/d/1DfrWtlHM29bQoHpteUEs_FcrJNCpMSv1OyV3EqMF2QI",
 pdf_location = "https://hedges.belmont.edu/~shawley/cv.pdf",
 html_location = "https://hedges.belmont.edu/~shawley/cv/",
 source_location = "https://github.com/drscotthawley/cv")

(or I can paste in your info, either way)

...and what I get is...

Error: '/home/shawley/anaconda3/envs/spnet/lib/R/library/datadrivencv/templates/cv.rmd' does not exist.

I've tried this in Rstudio and just R from the command line, and i get the same error either way.

Any suggestions on what to do? Thanks.

(btw that /home/shawley/anaconda3/envs/spnet/lib/R/library seems to be the default directory that comes up when I go to Tools > Install Packages in Rstudio).

position_data %>% print_section('education') error

Please help. I was runing the resume.Rmd. I got the following error.

Error: arrange() failed at implicit mutate() step. x Could not create a temporary column for ..1. i ..1 is order.
40.
stop(fallback)
39.
signal_abort(cnd)
38.
abort(c("arrange() failed at implicit mutate() step. ", bullets), class = "dplyr_error")
37.
(function (cnd) { if (inherits(cnd, "dplyr:::mutate_error")) { error_name <- cnd$error_name ...
36.
signalCondition(cnd)
35.
signal_abort(cnd)
34.
abort(c(cnd_bullet_header(), bullets, i = if (show_group_details) cnd_bullet_cur_group_label()), class = c("dplyr:::mutate_error", "dplyr_error"), error_name = error_name, error_expression = error_expression)
33.
(function (e) { local_call_step(dots = dots, .index = i, .fn = "mutate", .dot_data = inherits(e, "rlang_error_data_pronoun_not_found")) ...
32.
signalCondition(cnd)
31.
signal_abort(cnd)
30.
(function (message = NULL, class = NULL, ..., trace = NULL, parent = NULL, .subclass) { validate_signal_args(.subclass) ...
29.
exec(abort, class = class, !!!.envir)
28.
abort_glue(character(0), list(result = function (..., na.last = TRUE, decreasing = FALSE, method = c("auto", "shell", "radix")) { z <- list(...) ...
27.
mask$eval_all_mutate(dots[[i]])
26.
withCallingHandlers({ for (i in seq_along(dots)) { not_named <- (is.null(dots_names) || dots_names[i] == "") ...
25.
mutate_cols(.data, ...)
24.
mutate.data.frame(.data, ..., .keep = "none")
23.
mutate(.data, ..., .keep = "none")
22.
transmute.data.frame(new_data_frame(.data), !!!quosures)
21.
transmute(new_data_frame(.data), !!!quosures)
20.
withCallingHandlers({ transmute(new_data_frame(.data), !!!quosures) }, error = function(cnd) { if (inherits(cnd, "dplyr:::mutate_error")) { ...
19.
arrange_rows(.data, dots)
18.
arrange.data.frame(., order)
17.
arrange(., order)
16.
function_list[i]
15.
freduce(value, _function_list)
14.
_fseq(_lhs)
13.
eval(quote(_fseq(_lhs)), env, env)
12.
eval(quote(_fseq(_lhs)), env, env)
11.
withVisible(eval(quote(_fseq(_lhs)), env, env))
10.
position_data %>% filter(section == section_id) %>% arrange(order) %>% mutate(id = 1:n()) %>% pivot_longer(starts_with("description"), names_to = "description_num", values_to = "description") %>% filter(!is.na(description) | description_num == "description_1") %>% ... at parsing_functions.R#50
9.
print_section(., "education")
8.
function_list[k]
7.
withVisible(function_list[k])
6.
freduce(value, _function_list)
5.
_fseq(_lhs)
4.
eval(quote(_fseq(_lhs)), env, env)
3.
eval(quote(_fseq(_lhs)), env, env)
2.
withVisible(eval(quote(_fseq(_lhs)), env, env))
1.
position_data %>% print_section("education")

missing value where TRUE/FALSE needed

Hi,
After trying to knit the HTML version I got this error

Quitting from lines 15-29 (cv.Rmd)
Error in if (!after) c(values, x) else if (after >= lengx) c(x, values) else c(x[1L:after], :
missing value where TRUE/FALSE needed

Any thoughts to get around this issue would be much appreciated!
cheers

PS. I have all cells of "in_resume" col filled with TRUE, no NA in column "section"

pdf conversion failed

I am using windows 10. The html, also when opened in chrome is not viewable i.e. returns a blank page. I tried switching to ie and it was fine. I do not know what this means at all. Please help
Capture

failed to install

I am having this error:

"ERROR: dependency 'icon' is not available for package 'datadrivencv'"

Is icon an R package?

Keep in-line links in PDF

I know that the implementation for adding the links at the end was on purpose, however I want to keep the in-line links in the DOIs of my publications and I have not manage to find a solution, every time I made the html to PDF conversion the DOIs appear at the end listed as links. How can I preserve the in-line links? I tried adding the option in the YALM ( links-to-footnotes: false) but it doesn't seem to work.

About text blocks

Is there any way to get rid of NA's because i won't use text blocks.

Specify month for "start" and "end"

Hello, my CV is looking great! Also it seems wonderful to be able to update it from the drive.
My query is:
Is it possible to add the month to the year?
I have tried to put "2015-02" or "Feb2015". In none of the cases has it worked.
The error is as follows:

Error: Problem with mutate()inputstart. x Result 2 must be a single string, not a character vector of length 0 ℹ Input startis(function (.x, .f, ...) .... Backtrace: ...

Removing Gaps

I dont use (loc) column in some parts of my CV but there is gaps between titles and descriptions. Is there anyway to remove that gaps? and how can i insert new columns such as loc_1 loc_2? Thanks.

-'NA' bullets added to each entry

Having lots of fun creating my CV but I've just run into an issue where an extra bullet point has been added to my entries when I render. It seems to be taking an empty 'description' column as NA for each item.

knit pdf error

I can create my html version but when I try to knit it for the pdf I get this error:
Quitting from lines 201-202 (cv_1.Rmd)
Error: nm must be NULL or a character vector the same length as x

Any thoughts? thanks

object icon not found

Hi,

I'm having the following issue. Do you know what might be going on here please?

Thanks,

Rebecca

> # Knit the HTML version
> rmarkdown::render("cv.rmd",
+                   params = list(pdf_mode = FALSE),
+                   output_file = "cv.html")


processing file: cv.rmd
  |..                                                                                     |   3%
   inline R code fragments

  |....                                                                                   |   5%
label: unnamed-chunk-1 (with options) 
List of 1
 $ include: logi FALSE

  |.......                                                                                |   8%
  ordinary text without R code

  |.........                                                                              |  10%
label: unnamed-chunk-2
  |...........                                                                            |  13%
  ordinary text without R code

  |.............                                                                          |  15%
label: unnamed-chunk-3
  |................                                                                       |  18%
  ordinary text without R code

  |..................                                                                     |  21%
label: unnamed-chunk-4
  |....................                                                                   |  23%
  ordinary text without R code

  |......................                                                                 |  26%
label: unnamed-chunk-5
Quitting from lines 67-68 (cv.rmd) 
Error in eval(parse(text = text, keep.source = FALSE), envir) : 
  object 'icon' not found

> 

new entries not showing up

I added a few entries like courses, affiliations or awards, and deleted some of the original entries like by_me_press or about_me_press. However, the new entries are not shown in the cv and your default fields or entries are still in the cv but with a long error message. e.g. for section "SELECTED PRESS (ABOUT), this error is printed in the CV "## Warning in stri_extract_all_regex(string, pattern, simplify = simplify, : argument is not an atomic

vector; coercing "

is it not possible to add or delete entries?
thanks

failed to install

Greetings Nick,
nice package! although I haven´t been able to install it from your git_hub. I fixed a few things like the Rtools (hopefully) but still receiving this error message (below). Basically package ‘icon’ is not available (for R version 3.5.3), do I need to install an older version or R? it does not sound like a good way to go for other things. Could you please provide feedback?

Thanks !
L

Skipping 1 packages not available: icon
Installing 55 packages: dplyr, tidyr, glue, googlesheets4, lubridate, purrr, usethis, pagedown, fs, icon, ellipsis, pkgconfig, R6, Rcpp, rlang, tibble, tidyselect, BH, stringi, vctrs, lifecycle, hms, curl, gargle, googledrive, ids, rematch2, cli, gh, git2r, rstudioapi, whisker, withr, yaml, rmarkdown, bookdown, htmltools, jsonlite, processx, servr, httpuv, xfun, websocket, fansi, pillar, digest, mime, sys, uuid, backports, knitr, tinytex, ps, promises, AsioHeaders
Installing packages into ‘C:/Users/admin/Documents/R/win-library/3.5’
(as ‘lib’ is unspecified)

Error: Failed to install 'datadrivencv' from GitHub:
(converted from warning) package ‘icon’ is not available (for R version 3.5.3)

Google sheets template is case sensitive

The Google Sheets template indicates that users should put "current" for their current position. This results in the following error message when running build_network_logo(CV$entries_data):

Error in start:end : NA/NaN argument
In addition: Warning message:
In eval_tidy(xs[[j]], mask) : NAs introduced by coercion

However if you change "current" to "Current", there is no issue. A change to the template, or build_network_logo() would fix this

additional resume template ideas

As requested, an additional template example, this one is specifically for US Federal job applications via USAjobs.gov

Something like this would also be great! (This one was made in latex + Rmarkdown, unlike the previous one, which is pretty clearly made in MS Word.)

html cv only displaying two pages

Hi Nick,

Thanks for the great package!

I'm rendering both the html and pdf versions but the html is only returning the first two pages of my cv? The pdf version renders all. Any ideas what might be causing this behaviour?

Best,
Scott

Mess with the HTML

Is there somewhere that you can view and edit the HTML of the cv template?

graphic question

hi! two question about graphic stuff

  1. is there the possibility to use company logo instead of the dots for the network image??
  2. can i put a picture of me instead the graph or just put above it?
    thanks

error executing render_cv.r

Hey Nick,

I get the following error when I try to render the CV.

processing file: cv.rmd
|... | 3%
inline R code fragments

|....... | 5%
label: unnamed-chunk-20 (with options)
List of 1
$ include: logi FALSE

Quitting from lines 15-29 (cv.rmd)
Error in file(filename, "r", encoding = encoding) :
cannot open the connection

traceback()

20: file(filename, "r", encoding = encoding)
19: source("cv_printing_functions.r")
18: eval(expr, envir, enclos)
17: eval(expr, envir, enclos)
16: withVisible(eval(expr, envir, enclos))
15: withCallingHandlers(withVisible(eval(expr, envir, enclos)), warning = wHandler,
error = eHandler, message = mHandler)
14: handle(ev <- withCallingHandlers(withVisible(eval(expr, envir,
enclos)), warning = wHandler, error = eHandler, message = mHandler))
13: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval(expr,
envir, enclos)), warning = wHandler, error = eHandler, message = mHandler)))
12: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos,
debug = debug, last = i == length(out), use_try = stop_on_error !=
2L, keep_warning = keep_warning, keep_message = keep_message,
output_handler = output_handler, include_timing = include_timing)
11: evaluate::evaluate(...)
10: evaluate(code, envir = env, new_device = FALSE, keep_warning = !isFALSE(options$warning),
keep_message = !isFALSE(options$message), stop_on_error = if (options$error &&
options$include) 0L else 2L, output_handler = knit_handlers(options$render,
options))
9: in_dir(input_dir(), evaluate(code, envir = env, new_device = FALSE,
keep_warning = !isFALSE(options$warning), keep_message = !isFALSE(options$message),
stop_on_error = if (options$error && options$include) 0L else 2L,
output_handler = knit_handlers(options$render, options)))
8: block_exec(params)
7: call_block(x)
6: process_group.block(group)
5: process_group(group)
4: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group),
error = function(e) {
setwd(wd)
cat(res, sep = "\n", file = output %n% "")
message("Quitting from lines ", paste(current_lines(i),
collapse = "-"), " (", knit_concord$get("infile"),
") ")
})
3: process_file(text, output)
2: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
1: rmarkdown::render("/mnt/dzl_bioinf/meghadri/learning/cv/cv.rmd",
params = list(pdf_mode = FALSE), output_file = "cv.html")

Could you please point me how to fix this?

How to remove the sidebar

Hi, I am working with nick's original data and the CV renders fine. However, I would like to simplify the layout by removing entirely the aside to the right (throughout the entire document). The regular text could then use the entire width of the page (instead of the current situation where there is this lightblue space/bar to the right and the "regular" text can only run until that bar).

I will put my contact info in a separate section and have no need to use any of that right bar anywhere in the document. How can I make this happen?

Custom Sections

I'm working off Nick's Google sheets to create my CV. In the section column, he has some sections like data_science_writings, about_me_press that aren't relevant to me.

I was wondering how I could create different sections, for ex) Relevant Experience, Leadership Experience, Extracurricular Activities

Failure to knit CV

Hi Nick,

Lovely package you got. I tried using it and followed the step you enumerated in your website. But when i tried to knit the html or pdf version I get this sort of error message

 Error: Client error: (403) PERMISSION_DENIED
  * Client does not have sufficient permission. This can happen because the OAuth token does not have the right scopes, the client doesn't have permission, or the API has not been enabled for the client project.
  * The caller does not have permission

Any idea how to navigate this one.
Stan

Can't produce pdf output inside a docker container

I'm using docker for all of my projects now. Especially for a CV it seems relevant to use a reproducible environment because you usually need to update your cv seldom and large time gaps are in between the updates. However, I'm a root user inside that docker container and you can't run headless chromium as root without the --no-sandbox flag (see rstudio/pagedown#143).

That is, I suggest adding extra_args = "--no-sandbox" to render_cv.r line 22. I'll make a PR for that in a moment. I think this option shouldn't hurt anyone running R and Chrome locally but It will prevent a struggle for people heavily utilizing docker.

# Convert to PDF using Pagedown
pagedown::chrome_print(
    input = tmp_html_cv_loc,
    output = "cv.pdf",
    extra_args = "--no-sandbox"
)

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.