Title: | Collaborative Editing of Rmd (or Rnw) Documents in Google Drive |
Version: | 1.1.1 |
Description: | Collaborative writing and editing of R Markdown (or Sweave) documents. The local .Rmd (or .Rnw) is uploaded as a plain-text file to Google Drive. By taking advantage of the easily readable Markdown (or LaTeX) syntax and the well-known online interface offered by Google Docs, collaborators can easily contribute to the writing and editing process. After integrating all authors’ contributions, the final document can be downloaded and rendered locally. |
Depends: | R (≥ 3.5) |
License: | GPL-3 |
Encoding: | UTF-8 |
Imports: | cli (≥ 3.0.0), googledrive (> 1.0.1), rmarkdown |
Suggests: | covr, devtools, gargle, knitr, pagedown, sodium, testthat (≥ 3.0.0), vcr |
Config/testthat/edition: | 3 |
RoxygenNote: | 7.1.1 |
VignetteBuilder: | knitr |
URL: | https://github.com/claudiozandonella/trackdown/, https://claudiozandonella.github.io/trackdown/ |
BugReports: | https://github.com/claudiozandonella/trackdown/issues |
NeedsCompilation: | no |
Packaged: | 2021-12-19 11:06:52 UTC; claudio |
Author: | Emily Kothe |
Maintainer: | Claudio Zandonella Callegher <claudiozandonella@gmail.com> |
Repository: | CRAN |
Date/Publication: | 2021-12-19 14:40:02 UTC |
trackdown - R package for improving collaborative writing
Description
The trackdown
package offers a simple solution for collaborative
writing and editing of R Markdown (or Sweave) documents. Using
trackdown
, the local .Rmd
(or .Rnw
) file can be uploaded
as a plain-text file to Google Drive. By taking advantage of the easily
readable Markdown (or LaTeX) syntax and the well-known online interface
offered by Google Docs, collaborators can easily contribute to the writing
and editing process. After integrating all authors’ contributions, the final
document can be downloaded and rendered locally.
The trackdown
Workflow
During the collaborative writing/editing of an .Rmd
(or .Rnw
)
document, it is important to employ different workflows for computer code
and narrative text:
Code - Collaborative code writing is done most efficiently by following a traditional Git-based workflow using an online repository (e.g., GitHub or GitLab).
Narrative Text - Collaborative writing of narrative text is done most efficiently using Google Docs which provides a familiar and simple online interface that allows multiple users to simultaneously write/edit the same document.
Thus, the workflow’s main idea is simple: Upload the .Rmd
(or .Rnw
)
document to Google Drive to collaboratively write/edit the narrative text in
Google Docs; download the document locally to continue working on the code
while harnessing the power of Git for version control and collaboration.
This iterative process of uploading to and downloading from Google Drive
continues until the desired results are obtained. The workflow can be
summarized as:
Collaborative code writing using Git & collaborative writing of narrative text using Google Docs
Functions
trackdown
offers different functions to manage the workflow:
upload_file
uploads a file for the first time to Google Drive.update_file
updates the content of an existing file in Google Drive with the contents of a local file.download_file
downloads the edited version of a file from Google Drive and updates the local version.render_file
downloads a file from Google Drive and renders it locally.
Special Features
trackdown
offers additional features to facilitate the collaborative
writing and editing of documents in Google Docs. In particular, it is
possible to:
Hide Code: Code in the header of the document (YAML header or LaTeX preamble) and code chunks are removed from the document when uploading to Google Drive and are automatically restored during download. This prevents collaborators from inadvertently making changes to the code which might corrupt the file and allows them to focus on the narrative text.
Upload Output: The actual output document (i.e., the rendered file) can be uploaded to Google Drive in conjunction with the
.Rmd
(or.Rnw
) document. This helps collaborators to evaluate the overall layout including figures and tables and allows them to add comments to suggest and discuss changes.Use Google Drive shared drives: The documents can be uploaded on your personal Google Drive or on a shared drive to facilitate collaboration.
Advantages of Google Docs
Google Docs offers users a familiar, intuitive, and free web-based interface that allows multiple users to simultaneously write/edit the same document. In Google Docs it is possible to:
track changes (incl. accepting/rejecting suggestions)
add comments to suggest and discuss changes
check spelling and grammar errors (potentially integrating third-party services like Grammarly)
Moreover, Google Docs allows anyone to contribute to the writing/editing of the document. No programming experience is required, users can just focus on writing/editing the narrative text.
Note that not all collaborators have to have a Google account (although this
is recommended to utilize all Google Docs features). Only the person who
manages the trackdown
workflow needs to have a Google account to
upload files to Google Drive. Other collaborators can be invited to
contribute to the document using a shared link.
Documentation and Vignettes
All the documentation is available at https://claudiozandonella.github.io/trackdown/.
To know more about the trackdown
, please reference:
vignette("trackdown-features")
for a detailed description of the function arguments and features.vignette("trackdown-workflow")
for a workflow example and discussion of how to collaborate on narrative text and code.vignette("trackdown-tech-notes")
for details regarding technical details like authentication and file management.
Downloads from Google Docs
Description
Download edited version of a file from Google Drive updating the local
version with the new changes.
Use with caution as local version of the file will be
overwritten!
To know more about trackdown
workflow and features see
trackdown-package
help page.
Usage
download_file(
file,
gfile = NULL,
gpath = "trackdown",
shared_drive = NULL,
rm_gcomments = FALSE
)
Arguments
file |
character. The path of a local '.Rmd' or '.Rnw' file. |
gfile |
character. The name of a Google Drive file (defaults to local file name). |
gpath |
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 |
shared_drive |
character. The name of a Google Drive shared drive (optional). |
rm_gcomments |
[experimental] logical value indicating whether or not to remove Google comments. |
Value
'TRUE' if file from Google Drive was saved, 'FALSE' otherwise
Render file from Google Drive
Description
Render file from Google Drive if there have been edits
To know more about trackdown
workflow and features see
trackdown-package
help page.
Usage
render_file(
file,
gfile = basename(file),
gpath = "trackdown",
shared_drive = NULL
)
Arguments
file |
character. The path of a local '.Rmd' or '.Rnw' file. |
gfile |
character. The name of a Google Drive file (defaults to local file name). |
gpath |
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 |
shared_drive |
character. The name of a Google Drive shared drive (optional). |
Value
'TRUE' if file from Google Drive was saved and rendered, 'FALSE' otherwise
Updates file in Google Drive
Description
Replaces the content of an existing file in Google Drive with the contents of
a local file. It is also possible to update (or upload if not already
present) 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.
Use with caution as tracked changes in the Google Drive file will be
lost!
To know more about trackdown
workflow and features see
trackdown-package
help page.
Usage
update_file(
file,
gfile = NULL,
gpath = "trackdown",
shared_drive = NULL,
hide_code = FALSE,
path_output = NULL
)
Arguments
file |
character. The path of a local '.Rmd' or '.Rnw' file. |
gfile |
character. The name of a Google Drive file (defaults to local file name). |
gpath |
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 |
shared_drive |
character. The name of a Google Drive shared drive (optional). |
hide_code |
logical value indicating whether to remove code from the text document (chunks and header). Placeholders of type "[[chunk-<name>]]" are displayed instead. |
path_output |
default |
Value
a dribble of the uploaded file (and output if specified)
Upload file to Google Drive for collaborative writing and editing
Description
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.
Usage
upload_file(
file,
gfile = NULL,
gpath = "trackdown",
shared_drive = NULL,
hide_code = FALSE,
path_output = NULL
)
Arguments
file |
character. The path of a local '.Rmd' or '.Rnw' file. |
gfile |
character. The name of a Google Drive file (defaults to local file name). |
gpath |
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 |
shared_drive |
character. The name of a Google Drive shared drive (optional). |
hide_code |
logical value indicating whether to remove code from the text document (chunks and header). Placeholders of type "[[chunk-<name>]]" are displayed instead. |
path_output |
default |
Value
a dribble of the uploaded file (and output if specified)