Skip to contents

Uploads a local file to Google Drive as a plain text document. Will only upload the file if it doesn't already exist in the chosen location. By default files are uploaded in the folder "trackdown", if is not available on Google Drive, permission to create it is required to the user. To update an already existing file see update_file(). It is also possible to upload the output (pdf or html) of the file specifying the path_output argument. In case of html files, if pagedown package and Chrome are available, users can decide to upload a pdf version of the html file.

To know more about trackdown workflow and features see trackdown-package() help page.


  gfile = NULL,
  gpath = "trackdown",
  shared_drive = NULL,
  hide_code = FALSE,
  path_output = NULL,
  rich_text = TRUE,
  rich_text_par = NULL,
  force = FALSE,
  open = rlang::is_interactive()



character. The path of a local .Rmd, Quarto, or .Rnw file.


character. The name of a Google Drive file (defaults to local file name).


character. (Sub)directory in My Drive or a shared drive (optional). By default files are uploaded in the folder "trackdown". To specify another folder the full path is required (e.g., "trackdown/my_folder"). Use NULL to upload directly at the root level, although it is not recommended.


character. The name of a Google Drive shared drive (optional).


logical value indicating whether to remove code from the text document (chunks and header). Placeholders of type "[[chunk-<name>]]" are displayed instead.


default NULL, specify the path to the output to upload together with the other file. PDF are directly uploaded, HTML can be first converted into PDF if package pagedown and Chrome are available.


(experimental) logical value (default is TRUE) indicating whether to upload to Google Docs a rich document (i.e., important text that should not be changed is highlighted). See “Rich Text” in details section.


(experimental) argument used to pass a list with custom settings for rich_text. See “Rich Text” in details section.


logical value indicating whether to skip confirm check by user (default is FALSE).


logical value indicating whether to open the created document in a browser (default is TRUE in interactive sessions).


a dribble of the uploaded file (and output if specified).


Rich Text (experimental)

The rich_text option (default is TRUE) allows to upload a rich document to Google Docs. Important text that should not be changed is highlighted. This includes, added instructions at the top of the document, placeholders hiding the code, header of the document (YAML header or LaTeX preamble), code chunks, and in-line code.

Default colour is opaque yellow. You can customize the colour specifying the rgb_color option in the rich_text_par argument. The rgb_color has to be a list with elements red, green, and blue. Each element has to be a numeric value between 0 and 1. See example below.


if (FALSE) {

# Change default color to opaque light-blue
upload_file(file = "path-to/my-file", rich_text = TRUE,
            rich_text_par = list(rgb_color = list(red = 102/255,
                                                  green = 204/255,
                                                  blue = 255/255)))