The goal of downloadthis
is to implement download buttons in HTML output from RMarkdown without the need for runtime:shiny
.
Installation
You can install the released version of downloadthis
from CRAN with:
install.packages("downloadthis")
You can install the development version of downloadthis
from GitHub with:
# install.packages("remotes")
remotes::install_github("fmmattioni/downloadthis")
Introduction
This package builds the download button in R Markdown using bsplus, and it was inspired on this post from Yihui Xie.
✅ downloadthis now uses font-awesome icons v.6.5.2
Usage
Data frames, lists, or any R object
library(downloadthis)
mtcars %>%
download_this(
output_name = "mtcars data set",
output_extension = ".csv",
button_label = "Download data",
button_type = "warning",
has_icon = TRUE,
icon = "fa fa-save"
)
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 = "success",
has_icon = TRUE,
icon = "fa fa-save"
)
Web address
## 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
)
Local files
## 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
)
Local directory
## 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
)
Related work
-
xfun: The
xfun
package provides links instead of buttons for local files and directories.
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.