Is it possible to pass arguments to rmarkdown::render()
through the Knit button in RStudio? My naive attempt was to define arguments just like I normally would for an output style. For example:
knit:
rmarkdown::render:
output_dir: report
However, this does not work. When I press the Knit button, I see the following at the top of the Rmarkdown pane in RStudio, so the output_dir
argument specified in the YAML is not being passed on.
==> rmarkdown::render('/Users/jakethompson/Desktop/test-rmd/test-doc.Rmd', encoding = 'UTF-8');
Basically, I would like to be able to change the output directory and/or filename in the YAML. I could write a custom function and put it in a package as suggested here, but that would still require me to pass arguments to that function (i.e., the output directory and filename) in the YAML. Alternatively, I could write a custom function directly in the YAML, as below, but that would then require me to copy and paste the function code into every Rmd, which also seems like a less than ideal solution.
knit: (function(input, ...) {
rmarkdown::render(
input,
output_file = 'my-file-name',
output_dir = 'my-directory',
envir = globalenv()
)
})
Here is a working reprex and my current session info if that is helpful:
---
title: "Test Document"
knit:
rmarkdown::render:
output_dir: report
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r cars}
summary(cars)
```
## Including Plots
You can also embed plots, for example:
```{r pressure, echo=FALSE}
plot(pressure)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
xfun::session_info()
#> R version 4.0.3 (2020-10-10)
#> Platform: x86_64-apple-darwin17.0 (64-bit)
#> Running under: macOS Big Sur 10.16
#>
#> Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8
#>
#> Package version:
#> base64enc_0.1.3 compiler_4.0.3 digest_0.6.27
#> evaluate_0.14 glue_1.4.2 graphics_4.0.3
#> grDevices_4.0.3 highr_0.8 htmltools_0.5.0.9003
#> jsonlite_1.7.2 knitr_1.30 magrittr_2.0.1
#> markdown_1.1 methods_4.0.3 mime_0.9
#> rlang_0.4.9 rmarkdown_2.6.4 stats_4.0.3
#> stringi_1.5.3 stringr_1.4.0 tinytex_0.28
#> tools_4.0.3 utils_4.0.3 xfun_0.19
#> yaml_2.2.1
Created on 2020-12-29 by the reprex package (v0.3.0)