Reuse a template from another chunk or file. By calling epoxy_use_chunk()
in an R chunk or inline R expression, you can reuse a template defined in
another chunk in your document.
Alternatively, you can store the template in a separate file and use
epoxy_use_file()
to reuse it. When stored in a file, the template file can
contain YAML front matter (following the same rules as pandoc documents)
with options that should be applied when calling an epoxy function. The
specific function called by epoxy_use_file()
can be set via the engine
option in the YAML front matter; the default is epoxy()
.
Arguments
- .data
A data set
- label
The chunk label, i.e. the human-readable name, of the chunk containing the template string. This chunk should be an
epoxy
,epoxy_html
or other epoxy-provided chunk type and it must have a label.epoxy_use_chunk()
will apply the options from this chunk to the template, giving preference to arguments inepoxy_use_chunk()
or the chunk options where it is called. See the "Template Options" section for more details.- ...
Arguments passed on to
epoxy
.transformer
A transformer function or transformer chain created with
epoxy_transform()
. Alternatively, a character vector of epoxy transformer names, e.g.c("bold", "collapse")
or a list of epoxy transformers, e.g.list(epoxy_transform_bold(), epoxy_transform_collapse())
.In epoxy, you'll most likely want to use the defaults or consult
epoxy_transform()
for more information. See alsoglue::glue()
for more information on transformers..style
.open
[
character(1)
: ‘\{’]
The opening delimiter around the template variable or expression. Doubling the full delimiter escapes it..close
[
character(1)
: ‘\}’]
The closing delimiter around the template variable or expression. Doubling the full delimiter escapes it..collapse
A character string used to collapse a vector result into a single value. If
NULL
(the default), the result is not collapsed..sep
[
character(1)
: ‘""’]
Separator used to separate elements..envir
[
environment
:parent.frame()
]
Environment to evaluate each expression in. Expressions are evaluated from left to right. If.x
is an environment, the expressions are evaluated in that environment and.envir
is ignored. IfNULL
is passed, it is equivalent toemptyenv()
..na
[
character(1)
: ‘NA’]
Value to replaceNA
values with. IfNULL
missing values are propagated, that is anNA
result will causeNA
output. Otherwise the value is replaced by the value of.na
..null
[
character(1)
: ‘character()’]
Value to replace NULL values with. Ifcharacter()
whole output ischaracter()
. IfNULL
all NULL values are dropped (as inpaste0()
). Otherwise the value is replaced by the value of.null
..comment
[
character(1)
: ‘#’]
Value to use as the comment character..literal
[
boolean(1)
: ‘FALSE’]
Whether to treat single or double quotes, backticks, and comments as regular characters (vs. as syntactic elements), when parsing the expression string. Setting.literal = TRUE
probably only makes sense in combination with a custom.transformer
, as is the case withglue_col()
. Regard this argument (especially, its name) as experimental..trim
[
logical(1)
: ‘TRUE’]
Whether to trim the input template withtrim()
or not.
- file
The template file, i.e. a plain text file, containing the template. An
.md
or.txt
file extension is recommended. In addition to the template, the file may also contain YAML front matter containing options that are used when rendering the template viaepoxy()
.
Value
A character string of the rendered template based on the label
chunk. The results are marked as "asis"
output so that they are treated
as regular text rather than being displayed as code results.
Use in R Markdown or Quarto
```{epoxy movie-release}
{.emph title} was released in {year}.
```
```{r}
# Re-using the template we defined above
epoxy_use_chunk(bechdel[1, ], "movie-release")
```
```{r}
# Using in a dplyr pipeline
bechdel |>
dplyr::filter(year == 1989) |>
epoxy_use_chunk("movie-release")
```
Or you can even use it inline:
It's hard to believe that Back to the Future Part II was released in 1989.
The same template could also be stored in a file, e.g. movie-release.md
:
The YAML front matter is used in template files to set options for the
template. You can use the engine
option to choose the epoxy function to be
applied to the template, e.g. engine: epoxy_html
or engine: epoxy_latex
.
By default, engine: epoxy
is assumed unless otherwise specified.
Template Options
When rendering a template, epoxy_use_chunk()
and epoxy_use_file()
will
inherit the options set in a number of different ways. The final template
options are determined in the following order, ranked by importance. Options
set in a higher-ranked location will override options set in a lower-ranked
location.
The arguments passed to
epoxy_use_chunk()
, such as.data
or any arguments passed in the...
. These options always have preference over options set anywhere else.The chunk options from the chunk where
epoxy_use_chunk()
orepoxy_use_file()
is called.The chunk options from the template chunk or file. These options typically are relevant to the template itself, such as the engine used or the opening and closing delimiters.
Global knitr chunk options for the document. You can set these with
knitr::opts_chunk$set()
, see?knitr::opts_chunk
for more information.