asis_output: Mark an R object with a special class

View source: R/output.R

asis_outputR Documentation

Mark an R object with a special class

Description

This is a convenience function that assigns the input object a class named knit_asis, so that knitr will treat it as is (the effect is the same as the chunk option results = 'asis') when it is written to the output.

Usage

asis_output(x, meta = NULL, cacheable = NA)

Arguments

x

An R object. Typically a character string, or an object which can be converted to a character string via as.character().

meta

Additional metadata of the object to be printed. The metadata will be collected when the object is printed, and accessible via knit_meta().

cacheable

Boolean indicating whether this object is cacheable. If FALSE, knitr will stop when caching is enabled on code chunks that contain asis_output().

Details

This function is normally used in a custom S3 method based on the printing function knit_print().

For the cacheable argument, you need to be careful when printing the object involves non-trivial side effects, in which case it is strongly recommended to use cacheable = FALSE to instruct knitr that this object should not be cached using the chunk option cache = TRUE, otherwise the side effects will be lost the next time the chunk is knitted. For example, printing a shiny input element or an HTML widget in an R Markdown document may involve registering metadata about some JavaScript libraries or stylesheets, and the metadata may be lost if we cache the code chunk, because the code evaluation will be skipped the next time. This particular issue has been solved in knitr after v1.13 (the metadata will be saved and loaded automatically when caching is enabled), but not all metadata can be saved and loaded next time and still works in the new R session.

Note

This function only works in top-level R expressions, and it will not work when it is called inside another expression, such as a for-loop. See https://github.com/yihui/knitr/issues/1137 for a discussion.

Examples

# see ?knit_print

knitr documentation built on Sept. 11, 2024, 6:18 p.m.