Title: | Implement Download Buttons in 'rmarkdown' |
Version: | 0.5.0 |
Description: | Implement download buttons in HTML output from 'rmarkdown' without the need for 'runtime:shiny'. |
License: | MIT + file LICENSE |
URL: | https://github.com/fmmattioni/downloadthis |
BugReports: | https://github.com/fmmattioni/downloadthis/issues |
Encoding: | UTF-8 |
Imports: | fs, readr, writexl, bsplus, mime, htmltools, magrittr, zip, ggplot2, base64enc |
RoxygenNote: | 7.3.2 |
Suggests: | knitr, rmarkdown, testthat (≥ 3.0.1), spelling, covr |
VignetteBuilder: | knitr |
Language: | en-US |
Config/testthat/edition: | 3 |
Config/testthat/parallel: | true |
NeedsCompilation: | no |
Packaged: | 2025-07-11 13:53:57 UTC; fmattioni |
Author: | Felipe Mattioni Maturana
|
Maintainer: | Felipe Mattioni Maturana <felipe.mattioni@med.uni-tuebingen.de> |
Repository: | CRAN |
Date/Publication: | 2025-07-11 14:10:08 UTC |
downloadthis: Implement Download Buttons in 'rmarkdown'
Description
Implement download buttons in HTML output from 'rmarkdown' without the need for 'runtime:shiny'.
Author(s)
Maintainer: Felipe Mattioni Maturana felipe.mattioni@med.uni-tuebingen.de (ORCID)
Other contributors:
John Coene jcoenep@gmail.com [contributor]
See Also
Useful links:
Report bugs at https://github.com/fmmattioni/downloadthis/issues
Pipe operator
Description
See magrittr::%>%
for details.
Usage
lhs %>% rhs
Download a directory
Description
The path is converted into a .zip
file.
Usage
download_dir(
path,
output_name,
button_label = "Download data",
button_type = c("default", "primary", "success", "info", "warning", "danger"),
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE,
...
)
Arguments
path |
Path to directory. |
output_name |
Name of of the output file. |
button_label |
Character (HTML), button label |
button_type |
Character, one of the standard Bootstrap types |
has_icon |
Specify whether to include fontawesome icons in the button label |
icon |
Fontawesome tag e.g.: "fa fa-save" |
self_contained |
A boolean to specify whether your HTML output is
self-contained. Default to |
... |
attributes (named arguments) and children (unnamed arguments) of
the button, passed to |
Value
htmltools::tag
, <button>
Examples
## Not run:
## Directory path as an example
download_dir(
path = system.file("assets", package = "downloadthis"),
output_name = "example dir",
button_label = "Download directory",
button_type = "success",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
## End(Not run)
Download a local file or multiple files
Description
In case multiple files are chosen, the files will be converted to a .zip
file.
Usage
download_file(
path,
output_name,
button_label = "Download data",
button_type = c("default", "primary", "success", "info", "warning", "danger"),
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE,
...
)
Arguments
path |
Path to the file(s). If multiple files are chosen, a vector must be passed to this argument. |
output_name |
Name of of the output file. If not specified, it will take
the source file's name if one file is specified. In case of multiple files,
the |
button_label |
Character (HTML), button label |
button_type |
Character, one of the standard Bootstrap types |
has_icon |
Specify whether to include fontawesome icons in the button label |
icon |
Fontawesome tag e.g.: "fa fa-save" |
self_contained |
A boolean to specify whether your HTML output is
self-contained. Default to |
... |
attributes (named arguments) and children (unnamed arguments) of
the button, passed to |
Value
htmltools::tag
, <button>
Examples
## Not run:
## One file example
download_file(
path = system.file("assets/css/all.min.css", package = "downloadthis"),
output_name = "CSS file from downloadthis",
button_label = "Download css file",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
## Multiple files example
path_files <- list.files(
path = system.file("assets/css", package = "downloadthis"),
full.names = TRUE
)
download_file(
path = path_files,
output_name = "Files from downloadthis",
button_label = "Download files",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
## End(Not run)
Download file from a web address
Description
It associates your download button to a web link. This might be an
alternative when your file is too big for being handled by download_this()
.
Usage
download_link(
link,
button_label = "Download data",
button_type = c("default", "primary", "success", "info", "warning", "danger"),
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE,
...
)
Arguments
link |
A web address for downloadthing the file. |
button_label |
Character (HTML), button label |
button_type |
Character, one of the standard Bootstrap types |
has_icon |
Specify whether to include fontawesome icons in the button label |
icon |
Fontawesome tag e.g.: "fa fa-save" |
self_contained |
A boolean to specify whether your HTML output is
self-contained. Default to |
... |
attributes (named arguments) and children (unnamed arguments) of
the button, passed to |
Value
htmltools::tag
, <button>
Examples
## Not run:
## Link in Github repo
download_link(
link = "https://github.com/fmmattioni/downloadthis/raw/master/inst/example/file_1.pdf",
button_label = "Download pdf file",
button_type = "danger",
has_icon = TRUE,
icon = "fa fa-save",
self_contained = FALSE
)
## End(Not run)
Download data frames, lists, or any R object
Description
Wrapper around bsplus::bs_button()
to provide a download button for HTML
outputs in R Markdown. Internally, the function writes the file to
tempdir()
, encodes it, and produces the download button. Currently,
Internet Explorer does not support downloading embedded files. For
downloading links, files, or directories, see download_link()
,
download_file()
, and download_dir()
.
Usage
download_this(
.data,
...,
output_name = NULL,
output_extension = c(".csv", ".xlsx", ".rds"),
button_label = "Download data",
button_type = c("default", "primary", "success", "info", "warning", "danger"),
icon = "fa fa-save",
self_contained = FALSE,
csv2 = TRUE,
ggsave_args = list()
)
Arguments
.data |
A data frame or (named) list to write to disk. See 'Examples' for more details. |
... |
attributes (named arguments) and children (unnamed arguments) of
the button, passed to |
output_name |
Name of of the output file, if |
output_extension |
Extension of the output file. Currently, |
button_label |
Character (HTML), button label |
button_type |
Character, one of the standard Bootstrap types |
icon |
Fontawesome tag e.g.: "fa fa-save", set to |
self_contained |
A boolean to specify whether your HTML output is
self-contained. Default to |
csv2 |
A boolean to specify whether to use |
ggsave_args |
List of arguments to pass to |
Value
htmltools::tag
, <button>
Warning
This example will write the mtcars
dataset to tempdir()
and produce the
download button for the file mtcars dataset.csv
with the fa fa-save
icon
on the Download data
label.
Examples
## Not run:
# Passing a data frame to the function
mtcars %>%
download_this(
output_name = "mtcars dataset",
output_extension = ".csv",
button_label = "Download data",
button_type = "warning",
icon = "fa fa-save"
)
# Passing a list with data frames to the function
list(mtcars, iris) %>%
download_this(
output_name = "mtcars and iris datasets",
output_extension = ".xlsx",
button_label = "Download data",
button_type = "warning",
icon = "fa fa-save"
)
# Passing a named list with data frames to the function
list("mtcars dataset" = mtcars, "iris dataset" = iris) %>%
download_this(
output_name = "mtcars and iris datasets",
output_extension = ".xlsx",
button_label = "Download data",
button_type = "warning",
icon = "fa fa-save"
)
# Passing any R object to the function
vector_example <- 1:10
linear_model <- lm(mpg ~ gear, data = mtcars)
list(mtcars, iris, vector_example, linear_model) %>%
download_this(
output_name = "datasets, vector, and linear model",
output_extension = ".rds",
button_label = "Download as rds",
button_type = "warning",
icon = "fa fa-save"
)
## End(Not run)