Implement Download Buttons in 'rmarkdown'

Implement download buttons in HTML output from 'rmarkdown' without the need for 'runtime:shiny'.


downloadthis

Lifecycle:stable CRANstatus R buildstatus Monthly downloadsbadge Total downloadsbadge Codecov testcoverage R-CMD-check

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
)

Vignettes

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.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("downloadthis")

0.5.0 by Felipe Mattioni Maturana, a year ago


https://github.com/fmmattioni/downloadthis


Report a bug at https://github.com/fmmattioni/downloadthis/issues


Browse source code at https://github.com/cran/downloadthis


Authors: Felipe Mattioni Maturana [aut, cre] (ORCID: , John Coene [ctb]


Documentation:   PDF Manual  


MIT + file LICENSE license


Imports fs, readr, writexl, bsplus, mime, htmltools, magrittr, zip, ggplot2, base64enc

Suggests knitr, rmarkdown, testthat, spelling, covr


Suggested by OmicFlow, metabolic, projoint.


See at CRAN