Skip to contents

Data is passed to a template to render the final document.


render(.x, ...)

# S3 method for character
render(.x, ..., .config = default_config())

# S3 method for fs_path
render(.x, ..., .config = default_config())

# S3 method for jinjar_template
render(.x, ...)



The template. Choices:


<dynamic-dots> Data passed to the template.

By default, a length-1 vector is passed as a scalar variable. Use I() to declare that a vector should be passed as an array variable. This preserves a length-1 vector as an array.


The engine configuration. The default matches Jinja defaults, but you can use jinjar_config() to customize things like syntax delimiters, whitespace control, and loading auxiliary templates.


String containing rendered template.

See also


# pass data as arguments
render("Hello {{ name }}!", name = "world")
#> [1] "Hello world!"

# pass length-1 vector as array
render("Hello {{ name.0 }}!", name = I("world"))
#> [1] "Hello world!"

# pass data programmatically
params <- list(name = "world")
render("Hello {{ name }}!", !!!params)
#> [1] "Hello world!"

# render template file
if (FALSE) {
render(fs::path("template.txt"), name = "world")